typedef struct { WORD bfType; DWORD bfSize; WORD bfReserved1; WORD bfReserved2; DWORD bfOffBits; } __attribute__((__packed__)) BITMAPFILEHEADER;
Ja sitten kokoa.c:
BITMAPFILEHEADER bf fread(&bf, sizeof(BITMAPFILEHEADER), 1, inptr);
Haluan tietää joitain viitteitä suoritettavaksi
BITMAPFILEHEADER bf
saada lyhenne BITMAPFILEHEADERille?
Tiedän vain
typedef <oldname> <newname>
Kuinka tulee, vain toimii?
Kiitos etukäteen avusta tämän asian selvittämisessä minulle.
Vastaa
Oletan, että kysyt miksi typedef bmp.h
toimii. Jos ei, selvitä kysymyksesi ja päivitän vastauksen.
Kohdassa bmp.h
:
typedef struct { WORD bfType; DWORD bfSize; WORD bfReserved1; WORD bfReserved2; DWORD bfOffBits; } __attribute__((__packed__)) BITMAPFILEHEADER;
on oikeastaan sama asia kuin lausunto:
typedef <oldname> <newname>;
Tässä tapauksessa <oldname>
on itse asiassa kaikki seuraavat:
struct { WORD bfType; DWORD bfSize; WORD bfReserved1; WORD bfReserved2; DWORD bfOffBits; } __attribute__((__packed__))
joka on anonyymi rakenne. Täydellinen lause ottaa tämän nimeämättömän rakenteen ja muodostaa sille aliaksen (BITMAPFILEHEADER
).
Nyt voit käyttää BITMAPFILEHEADER
tyyppiä, kuten int
tai double
. Ilmoitus BITMAPFILEHEADER bf
varaa riittävästi muistia paikalliseen muuttujaan koko rakenteen tallentamiseen.
Kommentit
- Nyt ymmärrän. Kiitos paljon.