我编译了这个(gcc编译器):
#include <stdio.h>
main() {
struct {
a:1;
b:2;
} t;
t.b=6;
t.a=2;
printf("%d %d",t.a,t.b);
}
显示的错误为:
“a”前应为说明符限定符列表
为什么在默认情况下将未命名的数据变量作为int时需要它。请解释一下。。。
最佳答案
这是C language standard所要求的。根据第6.7.2.1节第4部分:
位字段的类型应为Bool、signed int、unsigned int或其他实现定义类型的限定或非限定版本。