que necesita para empacar algunos bits en un byte de esta manera:C/C++ bitfields versus operadores bit a bit para seleccionar bits individuales, ¿qué es más rápido, mejor y más portátil?
struct
{
char bit0: 1;
char bit1: 1;
} a;
if(a.bit1) /* etc */
o:
if(a & 0x2) /* etc */
Desde la claridad del código fuente que es bastante obvio para mí que son campos de bits más ordenado. Pero, ¿qué opción es más rápida? Sé que la diferencia de velocidad no será demasiado si la hay, pero como puedo usar cualquiera de ellos, si uno es más rápido, mejor.
Por otro lado, he leído que no se garantiza que los campos de bits organicen bits en el mismo orden en todas las plataformas, y quiero que mi código sea portátil.
Notas: Si planeas responder "Perfil" bien, lo haré, pero como soy flojo, si alguien ya tiene la respuesta, mucho mejor.
El código puede estar equivocado, puede corregirme si lo desea, pero recuerde cuál es el punto de esta pregunta y por favor intente y responda también.
Puede estar interesado en http://stackoverflow.com/questions/1044654/bitfield-manipulation-in-c. Hay al menos otra pregunta muy similar de la que recuerdo haber comentado (no parece ser esta). –
Bitfields: ¡estás fuera! Gracias a todos. – Petruza
Wow. Enseñamos una valiosa lección aquí. –