intで定義した場合の振る舞いについてなかなか書いてくれているサイトがないので少しだけ書きます。ここで書くのはVisualStudio(2013)のVC++での振る舞いについてであり、他の環境ではどうなるかはわかりません。この、他の環境ではどうなるかわからない(実装依存)というところが、言及しているサイトが少ない理由なのかもしれません。intで定義されているプログラムがあり、その時の挙動がなんでそうなるの?と調べだしたためです。int以外の型の場合は実装依存です」で終わってしまっていて、実際どうなるのか書かれていないため、そうは言われても気持ちが悪いので調べることにしました。0;}これの結果としてはこうなります。0;}これの実行結果は以下のようになります。-1???直前でビットフィールドbField00に1を入れていますが、a.bField00をprintfしてみると-1になります。判定をしてみても-1になってるんですが、試しに構造体を共用体にしてint型の値として見ると、目的の場所のビットはきちんと立っていました。値の判定や表示は-1になります。どこをどうしたらこうなるのかさっぱりわかりません。しかたがないので逆アセンブルしてみることにしました。_a$[ebp]です。eax,1でbit0を残して全て0でクリアしています。printfへ値を渡して出力しにいっています。