我有两个头文件应该使用彼此的typedef。情况如下:
例如:
在头文件 server.h
中typedef struct
{
int myint;
}ServerSelfData;
typedef struct
{
ServerSelfData servData;
ClientSelfData clData;
}SERVER_Data;
在名为 client.h 的第二个头文件中,我们有:
typedef struct
{
int myint;
}ClientSelfData;
typedef struct
{
ClientSelfData clData;
ServerSelfData servData;
}CLIENT_Data;
因此在编译期间,其中一个定义会出错。其中一个取决于首先包含哪个文件。
这个问题是否有解决方法/解决方案?
答案 0 :(得分:2)
在这些头文件之前,您可以声明结构。稍后用名称完成结构。
typedef struct ServerSelfData ServerSelfData;
typedef struct CLIENT_Data CLIENT_Data;
typedef struct ServerSelfData
{
int myint;
}ServerSelfData;
答案 1 :(得分:0)
ServerSelfData
和ClientSelfData
的定义可以转移到单独的头文件(或一个单独的头文件),这些文件将包含在server.h
和client.h
中。< / p>