gcc中的struct关键字vs Borland C.

时间:2012-11-03 18:16:44

标签: gcc struct

我对下面的结构定义感到困惑。不应该都是正确的?用Borland C编译,但用gcc只编译第二个。错误是“未知类型名称_Node”。

typedef struct _Node {
    int item;
    _Node* next;
} Node;


typedef struct _Node {
    int item;
    struct _Node* next;
} Node;

2 个答案:

答案 0 :(得分:0)

这取决于编译器如何处理前向引用。 gcc编译器可以这样做,默认情况下,因为它也是一个C ++编译器。

答案 1 :(得分:0)

不,在C中只有第二个(明确包括struct说明符)是正确的。虽然C ++允许省略struct,但c不允许,因此这是一个不可移植的Borland扩展。如果用g ++编译,我想它也应该接受第一种语法。