Ansi C允许两个不同的结构可以包含彼此的指针(也以结构形式显示 - 它们指向彼此).我知道在许多情况下这不是一个好主意,但这不是问题.是否有可能使用typedef'ed结构实现相同的?
下面的代码工作得很好.
struct b;
typedef struct a {
struct b *bb;
} A;
typedef struct b {
struct a *aa;
} B;
Run Code Online (Sandbox Code Playgroud)
但使用"B"型则失败了
typedef struct b B;
typedef struct a {
B *bb;
} A;
typedef struct b {
A *aa;
} B;
Run Code Online (Sandbox Code Playgroud)
同
错误:重新定义typedef'B'
是否有可能告诉编译器稍后将声明'B'并在A的定义中使用它?
cni*_*tar 10
你可以这样做:
typedef struct a A;
typedef struct b B;
struct a {
B *bb;
};
struct b {
A *aa;
};
Run Code Online (Sandbox Code Playgroud)
这对你有用吗?
| 归档时间: |
|
| 查看次数: |
2642 次 |
| 最近记录: |