Asignando un valor al campo de bits con longitud 1
Supongamos que tengo
struct A
{
signed char a:1;
unsigned char b:1;
};
Si tengo
A two, three;
two.a = 2; two.b = 2;
three.a = 3; three.b = 3;
two
contendrá0
s en sus campos, mientrasthree
contendrá1
s. Entonces, esto me hace pensar que asignar un número a un campo de un solo bit obtiene el bit menos significativo (2
es10
en binario y3
es11
).
Entonces, mi pregunta es: ¿es esto correcto y multiplataforma? O depende de la máquina, del compilador, etc. ¿El estándar dice algo acerca de esto o está completamente definido por la implementación?
Nota: El mismo resultado se puede lograr asignando0
y1
, en lugar de2
y3
respectivamente. solía2
y3
solo para ilustrar mi pregunta, no la usaría en una situación del mundo real
PD Y sí, estoy interesada en ambas ...C
yC++
, por favor no me digas que son idiomas diferentes, porque yo sé esto :)