typedef struct { WORD bfType; DWORD bfSize; WORD bfReserved1; WORD bfReserved2; DWORD bfOffBits; } __attribute__((__packed__)) BITMAPFILEHEADER;
Og derefter i resize.c:
BITMAPFILEHEADER bf fread(&bf, sizeof(BITMAPFILEHEADER), 1, inptr);
Jeg vil gerne vide noget henvisning til at køre
BITMAPFILEHEADER bf
få en stenografi for BITMAPFILEHEADER?
Jeg ved kun
typedef <oldname> <newname>
Hvordan kommer det bare?
På forhånd tak for enhver hjælp til at afklare dette punkt for mig.
Svar
Jeg antager, at du spørger, hvorfor typedef i bmp.h
fungerer. Hvis ikke, skal du afklare dit spørgsmål, så opdaterer jeg svaret.
I bmp.h
:
typedef struct { WORD bfType; DWORD bfSize; WORD bfReserved1; WORD bfReserved2; DWORD bfOffBits; } __attribute__((__packed__)) BITMAPFILEHEADER;
er virkelig det samme som en udsagn:
typedef <oldname> <newname>;
I dette særlige tilfælde <oldname>
er faktisk alt af følgende:
struct { WORD bfType; DWORD bfSize; WORD bfReserved1; WORD bfReserved2; DWORD bfOffBits; } __attribute__((__packed__))
som er en anonym struktur. Den fulde erklæring tager denne unavngivne struktur og laver et alias for den (BITMAPFILEHEADER
).
Nu kan du bruge BITMAPFILEHEADER
som en type som int
eller double
. Erklæringen BITMAPFILEHEADER bf
reserverer nok hukommelse til en lokal variabel til at gemme hele strukturen.
Kommentarer
- Nu forstår jeg. Mange tak.