Cのビットフィールドは使うな
Kernighan&Pikeの「プログラミング作法」でビットフィールドは使うなと書かれてあるが、Gitのソースコードでは意外とよく使われていた。
ずっと、ビットフィールドのことを詳しく調べずに、如何ほどなのかと思っていたが、C言語のbitfieldの仕様と実装を調査した話に答えがあった。
CPUアーキテクチャのint型のビット幅以下のbitfieldを宣言して、そこに隙間のない(paddingがない)ピッタリのビットを定義すれば、コンパイラやアーキテクチャが変わっても仕様上は想定外のレイアウトにならない
そこまでやっても嬉しさは少ないのでビット演算する方がいい。