BITMAPFILEHEADER bf en resize.c

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.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *