Saludos,
no debo de estar en mi sano juicio, pero estoy convencido de que la salida del programa deberia ser "14 14", y sin embargo es "14 16". ¿Alguien me explica donde esta el truco, por favor? Llevo muchisimo tiempo para encontrar que lo que me falla es el sizeof, pero no se por que falla, ¿donde pierdo 2 bytes?
typedef short int WORD;
typedef long int DWORD;
// Cabecera archivo BMP
typedef struct {
WORD bfType; // Debe ser "BM"
DWORD bfSize; // Tam fichero en bytes
WORD bfReserved1; // Debe ser 0
WORD bfReserved2; // Debe ser 0
DWORD bfOffBits; // Offset inicio de datos (def 1078)
} bmpFileHeader;
int main (void);
int main(void) {
bmpFileHeader cabFile;
printf("%d\n", sizeof(cabFile.bfType)+
sizeof(cabFile.bfSize)+
sizeof(cabFile.bfReserved1)+
sizeof(cabFile.bfReserved2)+
sizeof(cabFile.bfOffBits));
printf("%d\n", sizeof(bmpFileHeader));
return 0;
}
Gracias por las respuestas.