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 に答える