/*###13 [cc] 警告: BBB:e45: このbitfield幅では比較は常に偽です%%%*/ struct { char a ; char b ; } R ; R.a = 1 ; R.b = 0xF ; if(R.a == 1) K&R-Cではここに来る ; else ANSI-Cではここに来る ; if(R.b == 0xF) K&R-Cではここに来る ; else ANSI-Cではここに来る ;
解説 unsigned をつけないビットフィールドが、 signed なのか unsigned なのかはコンパイラに依存します 詳細な説明は、 『プログラミング言語C 第2版 ANSI規格準拠 カーニハン リッチー著/石田晴久訳』 「6.9 ビット・フィールド」Page181 を参照して下さい。