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