我有一个关于C.空结构的问题,据我可以从阅读的标准来讲,似乎他们是不允许的:启用警告空结构
6.2.5-20
- 甲结构类型描述了一种顺序地分配非空子集构件的对象 (和,在某些情况下,一个不完整的阵列),其每一个具有一个任选 指定的名称和可能是不同类型。
所以,试图编译像不出意外时:
struct foo
{
};
在MS VS,有一些错误时,抛出:
错误C2016:C需要一个结构或联合有至少有一个成员
但是,当编译与相同的代码10没有发现错误。所以...
- 我正确阅读规范,这是而不是允许在C吗? (更令人惊讶的是,微软是否正确?!)
- 有没有一个选项可以传递到
gcc
使它能够解决这个问题?
查看http://stackoverflow.com/questions/755305/empty-structure-in-c?rq=1 – Nick 2013-03-14 16:50:42
@Nick - 不是真的一样。 A)该问题是关于摆脱警告,我*希望*看到警告。 B)你所连接的那个子问题是关于添加元素并保持大小为0的,我不在乎他谈论的C)在C11标准出来之前在2009年被问到,所以可能很好新的信息。 – Mike 2013-03-14 17:07:14