typedef struct { WORD bfType; DWORD bfSize; WORD bfReserved1; WORD bfReserved2; DWORD bfOffBits; } __attribute__((__packed__)) BITMAPFILEHEADER;
Y luego en resize.c:
BITMAPFILEHEADER bf fread(&bf, sizeof(BITMAPFILEHEADER), 1, inptr);
Quiero saber alguna referencia para ejecutar
BITMAPFILEHEADER bf
obtener una abreviatura de BITMAPFILEHEADER?
Solo lo sé
typedef <oldname> <newname>
¿Cómo es que funciona?
Gracias de antemano por cualquier ayuda para aclararme este punto.
Respuesta
Supongo que estás preguntando por qué el typedef en bmp.h
funciona. De lo contrario, aclare su pregunta y actualizaré la respuesta.
En bmp.h
:
typedef struct { WORD bfType; DWORD bfSize; WORD bfReserved1; WORD bfReserved2; DWORD bfOffBits; } __attribute__((__packed__)) BITMAPFILEHEADER;
es realmente lo mismo que una declaración:
typedef <oldname> <newname>;
En este caso particular, <oldname>
es en realidad todo lo siguiente:
struct { WORD bfType; DWORD bfSize; WORD bfReserved1; WORD bfReserved2; DWORD bfOffBits; } __attribute__((__packed__))
que es una estructura anónima. La declaración completa toma esta estructura sin nombre y crea un alias para ella (BITMAPFILEHEADER
).
Ahora puede usar BITMAPFILEHEADER
como un tipo como int
o double
. La declaración BITMAPFILEHEADER bf
reserva suficiente memoria para que una variable local almacene toda la estructura.
Comentarios
- Ahora entiendo. Muchas gracias.