为什么需要说明符限定符列表?

时间:2012-04-07 16:58:37

标签: c gcc bit-fields specifier

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

1 个答案:

答案 0 :(得分:1)

这是C language standard所要求的。根据第6.7.2.1节第4部分:

  

比特字段的类型应为_Bool,signed int,unsigned int或其他一些实现定义类型的合格或不合格版本。