空结构在C中不合法.
根据C99标准,相关的语法产品是:
请注意,struct-declaration-list不是可选的,并且必须始终至少有一个struct-declaration.
相比之下,这是C++语法:
请注意,member-specification是可选的.
另请注意,struct
C++ 中的空值不会为零.C语言还要求所有对象都具有非零大小; 您看到的错误消息不完全准确(错误是正确的,但描述性消息不是).
空结构在C中不合法.
根据C99标准,相关的语法产品是:
请注意,struct-declaration-list不是可选的,并且必须始终至少有一个struct-declaration.
相比之下,这是C++语法:
请注意,member-specification是可选的.
另请注意,struct
C++ 中的空值不会为零.C语言还要求所有对象都具有非零大小; 您看到的错误消息不完全准确(错误是正确的,但描述性消息不是).
空结构是C语言中的语法错误。编写C语言语法是为了禁止空结构。
但是在C ++中使用空结构是合法的。这就是为什么.C扩展名给您错误的原因