参考ページのCコードサンプルです。
signed int _exponent:8;
「8」と「8」自体の前のコロンの意味は何ですか?
参考ページのCコードサンプルです。
signed int _exponent:8;
「8」と「8」自体の前のコロンの意味は何ですか?
それはビットフィールドです。struct
これは定義でのみ有効であり、システムが整数に8ビットのみを使用することを意味します。
これはビットフィールドであり、構造のあいまいで見当違いの機能です。他の人のコードのビットフィールドを処理するために知っておく必要のある情報を検索するには、これで十分です。独自のコードについては、ビットフィールドを使用しないでください。
編集: Zackが要求したように、ビットフィールドには、独自のビット演算を実行する場合に比べて重大な欠点があり、利点はありません。それらのいくつかを次に示します。
シングルビットフラグの場合、ビットフィールドの代わりに独自のビット演算を使用するのは非常に簡単です。パックする必要のある大きな値の場合、すべてのビット演算をあちこちに書き出すのが面倒な場合は、いくつかの単純なマクロを記述します。
ビットフィールド仕様です。
これは、通常はビット以上を使用するビット_exponent
のみを取得することを意味します。通常、ビットフィールドは符号なしタイプで使用されます。8
signed int
8
IIRC、コンパイラは、8ビットに収まらないものがに書き込まれた場合に警告し_exponent
ます。
そのステートメントが構造内にある場合、はビットフィールドを意味します。