[英]Typedef'ed structs that have pointers to each other
Ansi C允许两个不同的结构可以包含彼此的指针(也以结构形式显示 - 它们指向彼此 )。 我知道在许多情况下这不是一个好主意,但这不是问题。 是否有可能使用typedef'ed结构实现相同的?
下面的代码工作得很好。
struct b;
typedef struct a {
struct b *bb;
} A;
typedef struct b {
struct a *aa;
} B;
但使用“B”型则失败了
typedef struct b B;
typedef struct a {
B *bb;
} A;
typedef struct b {
A *aa;
} B;
同
错误:重新定义typedef'B'
是否可以告诉编译器稍后将声明'B'并在A的定义中使用它?
你可以这样做:
typedef struct a A;
typedef struct b B;
struct a {
B *bb;
};
struct b {
A *aa;
};
这对你有用吗?
问题是你已经输入了它。
你应该做这样的事情:
struct a;
struct b;
typedef struct a A;
typedef struct b B;
然后你可以定义struct a和b,并在a和b的定义中使用a,b,A *,B *
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.