如果我要对以下内容进行编码:
typedef struct {
int a;
PTR1 bpointer;
} *PTR2;
typedef struct {
int b;
PTR2 cpointer;
} *PTR1;
我在PTR2之后定义了PTR1,但是如果首先使用它,那么它可能是编译时或运行时错误。那么如何避免任何此类错误并使用两个参考结构?我认为我们在两个相互依存的类中做的事情是一样的。那么有可能它不会显示任何错误,因为我们此时只是定义它们并且在调用这两个错误时已经定义了吗?混淆了一点。
我非常感谢您抽出时间看我的问题和努力。
感谢
答案 0 :(得分:3)
第一步是摆脱typedef并使用struct标签。然后,您可以转发声明struct标记,并在您仍想使用它们时单独生成typedef。请注意,使用typedef定义指向结构类型的类型被认为是非常糟糕的样式,特别是如果在完成时无法引用指向的类型。
struct struct1;
struct struct2;
struct struct2 {
int a;
struct struct1 *bpointer;
};
struct struct1 {
int b;
struct struct2 *cpointer;
};