Estoy usando bitfields para obtener acceso fácil en una biblioteca flotante que estoy tratando de hacer para un microcontrolador sin FPU.¿Cuál es la forma correcta de usar bitfields en C?
El problema es que parece que no puedo hacerlo funcionar con bitfields. Echar un vistazo:
typedef struct
{
union{
unsigned long mantissa: 23;
unsigned long exponent: 8;
unsigned long sign: 1;
float all;
};
}_float __attribute__((__packed__));
El problema es que cuando intento acceder o cambiar algo que considera los campos de bits como bits de 1,8,23 desde el final, respectivamente. Mientras que debería ser de 23 bits desde el final, luego 8 bits y luego el último bit. A menos que haya entendido mal el uso de bitfields. Pensé que el uso de lleno resolvería el problema, pero como puede ver, no lo hizo.
Cualquier ayuda sería muy apreciada. He sido guiado a este sitio mientras busco en Google más de una vez, así que tengo muchas esperanzas.
La forma correcta de usar bitfields es no usar bitfields. –