gcc和vc在定义结构时的一点区别


typedef struct _test {

          _test *p;

} test;

这个结构用vc可以编译通过,而gcc却不能。

vc强调结构的标记(_test)与别名(test)不能同名,只要不同名的情况下,struct _test *p可以简写为_test *p,即使加上关键字struct,也必须不同名才行。

然而gcc却允许标记和别名完全一样,但_test *p不能省略掉struct关键字(正确的定义应该是struct _test *p),即使不同名也不能省略。

相关内容