我编译了这个(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 时需要它。请解释...
我编译了这个(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 语言标准所要求的。根据第 6.7.2.1 节第 4 部分:
位域的类型应该是 _Bool、signed int、unsigned int 或其他一些实现定义的类型的限定或非限定版本。