gpt4 book ai didi

c - 在 C 中定义相互引用结构

转载 作者:太空宇宙 更新时间:2023-11-04 07:36:53 25 4
gpt4 key购买 nike

如果我要编写如下代码:

typedef struct {
int a;
PTR1 bpointer;
} *PTR2;

typedef struct {
int b;
PTR2 cpointer;
} *PTR1;

我在 PTR2 之后定义 PTR1,但如果先使用它,则可能会出现编译时或运行时错误。那么如何避免任何此类错误并使用两个引用结构呢?我认为我们在两个相互依赖的类(class)中所做的事情也是一样的。那么它是否有可能不会显示任何错误,因为我们此时只是定义它们并且在调用它们时都已经定义了?有点困惑。

非常感谢您花时间看到我的问题和您的努力。

谢谢

最佳答案

第一步是去掉 typedef 并使用 struct 标签。然后你可以转发声明结构标签,如果你仍然想使用它们,可以单独制作 typedef。请注意,使用 typedef 定义指向结构的指针类型被认为是非常非常糟糕的风格,尤其是当您完成后无法引用指向的类型时。

struct struct1;
struct struct2;

struct struct2 {
int a;
struct struct1 *bpointer;
};

struct struct1 {
int b;
struct struct2 *cpointer;
};

关于c - 在 C 中定义相互引用结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7972566/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com