Ver Mensaje Individual
  #2 (permalink)  
Antiguo 23/03/2015, 17:08
lareto
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: El uso de bits ahorra memoria?

Los bit-fields adyacentes pueden empaquetarse juntos, aunque es una característica que depende de cada compilador. En tu ejemplo, signo y num se han empaquetado en el espacio de un solo unsigned int, y es por eso que sizeof(numero) devuelve 4 y no 8.

En
Código C:
Ver original
  1. struct Byte_1
  2. {
  3.     unsigned char signo : 1;
  4.     unsigned char num   : 7;
  5. };
signo y num pueden empaquetarse en un mismo Byte (unsigned char).

Y en
Código C:
Ver original
  1. struct Byte_2
  2. {
  3.     unsigned short signo : 1;
  4.     unsigned short num   : 7;
  5. };
signo y num pueden empaquetarse en dos Bytes (unsigned short).