|
1
41
如果你写
它会给你一个诊断消息,因为你违反了语法规则。如果你写
然后,你有一个没有命名成员的非空结构,因此行为未定义,不需要诊断:
|
|
|
2
6
Support for empty structs in C are an extension in GCC .
|
|
|
3
5
在C99中:“如果结构声明列表不包含命名成员,则行为未定义。”
|
|
|
4
1
在VC 8上,如果我们尝试获取sizeof空结构体,它会出错,而在linux上使用gcc时,它会给出size 1,因为它使用gcc扩展而不是c语言规范,c语言规范说这是未定义的行为。
在windows vc 2005上,出现了编译错误 http://gcc.gnu.org/onlinedocs/gcc-4.1.2/gcc/Empty-Structures.html#Empty-Structures (正如Michael Burr所指出的那样) |
|
|
MaPo · Linux,设置锁定ICMP_过滤器选项 1 年前 |
|
Doohyeon Won · 内联函数上的奇怪现象?[关闭] 1 年前 |
|
|
Bobby · 复合字面值总是左值吗? 1 年前 |
|
9-Pin · C: 嵌套结构的堆栈内存分配 1 年前 |