BITMAPFILEHEADER bf dans resize.c

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

Et puis dans le resize.c:

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

Je veux connaître une référence à exécuter

BITMAPFILEHEADER bf 

obtenir un raccourci pour BITMAPFILEHEADER?

Je sais seulement

typedef <oldname> <newname> 

Comment ça marche, ça marche?

Merci davance pour toute aide pour clarifier ce point pour moi.

Réponse

Je suppose que vous vous demandez pourquoi le typedef dans bmp.h fonctionne. Sinon, veuillez clarifier votre question et je mettrai à jour la réponse.

Dans bmp.h:

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

est vraiment la même chose quune instruction:

typedef <oldname> <newname>; 

Dans ce cas particulier, <oldname> est en fait tout ce qui suit:

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

qui est une structure anonyme. Linstruction complète prend cette structure sans nom et en fait un alias (BITMAPFILEHEADER).

Vous pouvez maintenant utiliser BITMAPFILEHEADER comme un type tel que int ou double. La déclaration BITMAPFILEHEADER bf réserve suffisamment de mémoire pour quune variable locale stocke toute cette structure.

Commentaires

  • Maintenant, je comprends. Merci beaucoup.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *