Przypisanie wartości do pola bitowego o długości 1
Przypuśćmy, że mam
struct A
{
signed char a:1;
unsigned char b:1;
};
Jeżeli mam
A two, three;
two.a = 2; two.b = 2;
three.a = 3; three.b = 3;
two
będzie zawierać0
s na swoich polachthree
będzie zawierać1
s. To sprawia, że myślę, że przypisanie liczby do pola jednobitowego ma najmniej znaczący bit (2
jest10
w formacie binarnym i3
jest11
).
Więc moje pytanie brzmi - czy jest to poprawne i wieloplatformowe? Lub zależy to od komputera, kompilatora itp. Czy standard mówi coś o tym, czy też jest całkowicie zdefiniowany?
Uwaga: Ten sam wynik można osiągnąć, przypisując0
i1
, zamiast2
i3
odpowiednio. użyłem2
i3
po prostu dla zilustrowania mojego pytania, nie używałbym go w rzeczywistej sytuacji
P.S. I tak, jestem ciekawy w obu -C
iC++
, proszę nie mów mi, że są różnymi językami, bo to wiem :)