BITMAPFILEHEADER bf in resize.c (Italiano)

typedef struct { WORD bfType; DWORD bfSize; WORD bfReserved1; WORD bfReserved2; DWORD bfOffBits; } __attribute__((__packed__)) BITMAPFILEHEADER; 

E poi in resize.c:

BITMAPFILEHEADER bf fread(&bf, sizeof(BITMAPFILEHEADER), 1, inptr); 

Voglio sapere qualche riferimento per eseguire

BITMAPFILEHEADER bf 

ottieni una scorciatoia per BITMAPFILEHEADER?

Conosco solo

typedef <oldname> <newname> 

Come mai, funziona?

Grazie in anticipo per qualsiasi aiuto nel chiarire questo punto per me.

Risposta

Suppongo che tu stia chiedendo perché il typedef in bmp.h funziona. In caso contrario, chiarisci la tua domanda e aggiornerò la risposta.

In bmp.h:

typedef struct { WORD bfType; DWORD bfSize; WORD bfReserved1; WORD bfReserved2; DWORD bfOffBits; } __attribute__((__packed__)) BITMAPFILEHEADER; 

è in realtà la stessa cosa di unistruzione:

typedef <oldname> <newname>; 

In questo caso particolare, <oldname> è in realtà tutto quanto segue:

struct { WORD bfType; DWORD bfSize; WORD bfReserved1; WORD bfReserved2; DWORD bfOffBits; } __attribute__((__packed__)) 

che è una struttura anonima. Listruzione completa accetta questa struttura senza nome e ne fa un alias (BITMAPFILEHEADER).

Ora puoi utilizzare BITMAPFILEHEADER come un tipo come int o double. La dichiarazione BITMAPFILEHEADER bf riserva memoria sufficiente per una variabile locale per memorizzare lintera struttura.

Commenti

  • Ora capisco. Grazie mille.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *