BITMAPFILEHEADER bf i resize.c (Norsk)

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

Og deretter i resize.c:

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

Jeg vil vite noe referanse til å kjøre

BITMAPFILEHEADER bf 

få en stenografi for BITMAPFILEHEADER?

Jeg vet bare

typedef <oldname> <newname> 

Hvordan kommer det til, fungerer bare?

Takk på forhånd for all hjelp til å avklare dette poenget for meg.

Svar

Jeg antar at du spør hvorfor typedef i bmp.h fungerer. Hvis ikke, kan du avklare spørsmålet ditt, så oppdaterer jeg svaret.

I bmp.h:

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

er egentlig det samme som en uttalelse:

typedef <oldname> <newname>; 

I dette tilfellet, <oldname> er egentlig alt av følgende:

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

som er en anonym struktur. Den fulle uttalelsen tar denne ikke-navngitte strukturen og lager et alias for den (BITMAPFILEHEADER).

Nå kan du bruke BITMAPFILEHEADER som en type som int eller double. Erklæringen BITMAPFILEHEADER bf reserverer nok minne til at en lokal variabel kan lagre hele strukturen.

Kommentarer

  • Nå forstår jeg. Tusen takk.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *