使用彼此的数据类型(2标头)

时间:2018-05-30 05:36:51

标签: c struct enums identifier

我正在尝试这样的事情:

档案1.h:

#include "File2.h"

typdef enum
{
   MY_VARIABLE
}ENUM_FILE1;

typedef struct
{
   STRUCT_FILE_2 name
}STRUCT_FILE1;

档案2.h:

#include "File1.h"

typdef struct
{
   ENUM_FILE1 name;
}STRUCT_FILE2;

但是标识符ENUM_FILE1是未知的。为什么?我该如何解决?

1 个答案:

答案 0 :(得分:1)

这是一个无限的包含循环。您可以通过将所有类型放在一个标题中来解决此问题。

或者,你可以得到幻想:

File1.h:

typedef enum
{
   MY_VARIABLE
} ENUM_FILE1;

#include "File2.h"

typedef struct
{
   STRUCT_FILE_2 name;
} STRUCT_FILE1;

但这样做毫无意义,因为你自己无法使用File2.h;无论如何,你总是要#include "File1.h"。所以最后你仍然只有一个标题。