29/04/2006, 07:57
|
| | Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 8 meses Puntos: 17 | |
Claro, o simplemente como le dije en otro post, crear una clase "quizás-no-portable" que represente los campos de bits, y luego, cada plataforma que la implemente como pueda, tanto con campos de bits, como con variables a pelo.
C es universal, sí, pero no significa que sea portable en todos los aspectos. Por ejemplo:
Otra cosa que me cabreó hace años al leer a mano imágenes, la función estándar fread() para leer bloques de información, como por ejemplo un array de structs, depende del mínimo de alineación de memoria asignado. Es decir, VC++6 por defecto ponía 4 bytes, declarases la variable que declarases, pero si en la struct tenías un short, o un char, ya la había tramado. Total, o lo hacías a mano, o reducías el mínimo a 1 byte, cosa poco recomandable.
¿Portable? Pues la función fread() lo es, al igual que los campos de bits, pero su funcionamiento puede variar inesperadamente.
Última edición por MaxExtreme; 29/04/2006 a las 08:02 |