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.