C 包含彼此实例的多个结构

C 包含彼此实例的多个结构,c,struct,C,Struct,对于赋值,我需要声明多个结构,没有问题。声明如下: typedef struct struct1{ struct2* object; } typedef struct struct2{ struct1* object; } // functions using both struct1 and struct2 parameters 当然,这会给我一个错误,因为struct2不是在struct1之前声明的。因此,我试着事先声明,把 struct struct2; 在顶端。但是,这需

对于赋值,我需要声明多个结构,没有问题。声明如下:

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标记会给我带来无数错误。有人知道如何解决这个问题吗?

我用gcc
gcc版本4.5.2(Ubuntu/Linaro 4.5.2-8ubuntu4)试过了
我得到了以下错误
main.c:12:3:error:typedef'struct2'main的重新定义。c:4:19:注意:“struct2”的先前声明就在这里
@MohamedKALLEL:
gcc4.7.2
默认情况下没有对此发出警告,但您是对的。我已经更正了答案。非常感谢,你们太棒了+1.
typedef struct s2 struct2;

typedef struct s1 {
  struct2* object;
} struct1;

struct s2 {
  struct1* object;
};