我定义了一些引用彼此的结构,并在使用它们之前对结构进行typedef'ing,因此每个结构都“知道”其他结构(没有这样的编译错误)。不知道这是必要的还是正确的。在定义结构时避免“重定义typedef”警告
现在,当用gcc编译时,我得到了“重新定义typedef”警告。什么是正确的方式去做这件事?
typedef struct a A;
typedef struct b B;
typedef struct c C;
struct a {
B* list;
A* parent;
};
struct b {
A* current;
B* next;
};
struct c {
A* current;
A* root;
};
UPDATE: 哑,坏的复制粘贴导致这个头在另一个文件中被包含两次。我是C新手,并且认为它必须与文件中的结构两次有关。感谢@Kevin Ballard的领袖。
“的typedef重新定义”?你确定你没有标头守卫两次导入相同的头文件吗? – 2012-03-13 00:09:05
这段代码编译得很好。你能复制并粘贴你的实际代码吗? – 2012-03-13 00:09:08