私が持っているとしましょう
struct A
{
signed char a:1;
unsigned char b:1;
};
私が持っている場合
A two, three;
two.a = 2; two.b = 2;
three.a = 3; three.b = 3;
two
0
フィールドには が含まれますが、 にthree
は が含まれます1
。したがって、これは、シングルビットフィールドに数値を割り当てると、最下位ビットが取得されると思います(バイナリであり、2
です)。10
3
11
それで、私の質問は - これは正しいクロスプラットフォームですか? または、マシン、コンパイラなどに依存します。標準はこれについて何かを述べていますか、それとも完全に実装定義されていますか?
注: それぞれ と の代わりに と を代入しても、同じ結果が得られる場合0
が1
あり2
ます3
。私は質問を説明するためだけに使用2
し3
ましたが、実際の状況では使用しません
PSそして、はい、私は両方に興味があります-C
そしてC++
、私はこれを知っているので、それらが異なる言語であると私に言わないでください:)