包含彼此实例的多个结构

时间:2013-04-01 14:10:50

标签: c struct

对于作业,我需要声明多个结构,没有问题。这些声明如下:

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

1 个答案:

答案 0 :(得分:6)

typedef struct s2 struct2;

typedef struct s1 {
  struct2* object;
} struct1;

struct s2 {
  struct1* object;
};