0

ビットフィールドが役立つのはどのような場合ですか?

4

2 に答える 2

1

保存したいブール値がいくつかあり、メモリを浪費したくない場合。

たとえば、32ビット整数には32ビットがあります。したがって、ビットフィールドを使用して32ビットのブール値を格納するために使用できます。その他のデータ構造では、少なくとも32バイトが使用されます。

于 2012-12-01T03:53:47.080 に答える
1

ロディの答えには、ここで良い説明があります

C でのビットフィールド操作

  • ビットフィールドはより簡潔に使用できます (その代償として、/わずかに/より冗長に記述できます。
  • ビットフィールドはより堅牢です(とにかく「int」とはどのようなサイズですか)
  • 通常、ビットフィールドはビット単位の演算子と同じくらい高速です。
  • 単一ビット フィールドと複数ビット フィールドが混在している場合、ビットフィールドは非常に強力であり、複数ビット フィールドの抽出には大量の手動シフトが必要です。
  • ビットフィールドは効果的に自己文書化します。構造を定義して要素に名前を付けることで、それが何をするのかを理解しています。
  • ビットフィールドは、単一の int よりも大きな構造もシームレスに処理します。
  • ビット単位の演算子では、典型的な (悪い) プラクティスは、ビット マスクの多数の #defines です。

  • ビットフィールドに関する唯一の注意点は、コンパイラが実際にオブジェクトを必要なサイズにパックしたことを確認することです。これが標準で定義されているかどうか思い出せないので、 assert(sizeof(myStruct) == N) は便利なチェックです。

また、ビットフィールドを使用する価値があるのはいつですか? 、いくつかの良い例があります。

于 2012-12-01T07:31:35.277 に答える