对于作业,我需要声明多个结构,没有问题。这些声明如下:
typedef struct struct1{
struct2* object;
}
typedef struct struct2{
struct1* object;
}
// functions using both struct1 and struct2 parameters
当然,这会给我一个错误,因为struct2没有在struct1之前声明。因此,我尝试通过添加
来预先声明它struct struct2;
在顶部。然而,这要求我将struct1块中的对象称为
typedef struct struct1{
struct struct2* obj;
}
这个结构的函数将在使用struct1 *和struct2 *参数时使用,并进行测试(包括构造函数)。使用上面示例中的struct标签会给我带来无数错误。有谁知道如何解决这个问题?
答案 0 :(得分:6)
typedef struct s2 struct2;
typedef struct s1 {
struct2* object;
} struct1;
struct s2 {
struct1* object;
};