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

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* 参数的函数,并进行测试(包括构造函数)。在上面的例子中使用结构标记会给我带来无数错误。有谁知道如何解决这一问题?

最佳答案

typedef struct s2 struct2;

typedef struct s1 {
  struct2* object;
} struct1;

struct s2 {
  struct1* object;
};

关于c - 包含彼此实例的多个结构,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15745037/

10-12 16:13