两个头文件中的Typedefinition交换

时间:2016-03-15 07:53:57

标签: c

我有两个头文件应该使用彼此的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;

因此在编译期间,其中一个定义会出错。其中一个取决于首先包含哪个文件。

这个问题是否有解决方法/解决方案?

2 个答案:

答案 0 :(得分:2)

在这些头文件之前,您可以声明结构。稍后用名称完成结构。

typedef struct ServerSelfData ServerSelfData;
typedef struct CLIENT_Data CLIENT_Data;

typedef struct ServerSelfData
{
   int myint;
}ServerSelfData;

答案 1 :(得分:0)

ServerSelfDataClientSelfData的定义可以转移到单独的头文件(或一个单独的头文件),这些文件将包含在server.hclient.h中。< / p>