2

だから私は私のボードのiodefineのためのいくつかのコードを持っています. これらの多くは構造体で見られます。正確には何をしているのですか?最後の 4 ビットの単なるプレースホルダーですか? コンパイラ エラーが発生しないのはなぜですか? また、何に使用されますか?

union {
    unsigned char BYTE;
    struct {
        unsigned char OVRF:1;
        unsigned char IDLNF:1;
        unsigned char MODF:1;
        unsigned char PERF:1;
        unsigned char :4;        <------------
    } BIT;
} SPSR;

質問が多すぎないことを願っています。これは非常に興味深いことがわかりました。

4

2 に答える 2

4

名前のないビットフィールドです。パディングを提供するために使用されます(通常、隣接するビットフィールド間)。

(C99, 6.7.2.1p11) 「宣言子なしでコロンと幅だけのビットフィールド宣言は、名前のないビットフィールドを示します」

于 2013-08-09T16:34:27.390 に答える
2
struct-declarator:
declarator
type-specifier declarator (opt) : constant-expression

宣言子はオプションです。そのため、コンパイラは barf を実行しません。

于 2013-08-09T16:35:19.813 に答える