Atribuindo um valor ao campo de bits com comprimento 1
Suponha que eu tenha
struct A
{
signed char a:1;
unsigned char b:1;
};
Se eu tiver
A two, three;
two.a = 2; two.b = 2;
three.a = 3; three.b = 3;
two
conterá0
s em seus campos, enquantothree
conterá1
s. Então, isso me faz pensar, que atribuir um número a um campo de bit único obtém o bit menos significativo (2
é10
em binário e3
é11
).
Então, minha pergunta é - isso é correto e multi-plataforma? Ou isso depende da máquina, do compilador, etc. O padrão diz algo sobre isso, ou é completamente definido pela implementação?
Nota: O mesmo resultado pode ser alcançado atribuindo-se0
e1
, ao invés de2
e3
respectivamente. eu usei2
e3
apenas para ilustrar minha pergunta, eu não usaria isso em uma situação do mundo real
P.S. E, sim, eu sou interessante em ambos -C
eC++
, por favor não me diga que são línguas diferentes, porque eu sei disso :)