我正在尝试这样的事情:
档案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是未知的。为什么?我该如何解决?
答案 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"
。所以最后你仍然只有一个标题。