1

我编译了这个(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 时需要它。请解释...

4

1 回答 1

1

这是C 语言标准所要求的。根据第 6.7.2.1 节第 4 部分:

位域的类型应该是 _Bool、signed int、unsigned int 或其他一些实现定义的类型的限定或非限定版本。

于 2012-04-07T17:07:36.460 回答