typedef struct { WORD bfType; DWORD bfSize; WORD bfReserved1; WORD bfReserved2; DWORD bfOffBits; } __attribute__((__packed__)) BITMAPFILEHEADER;
Ezután a resize.c fájlban:
BITMAPFILEHEADER bf fread(&bf, sizeof(BITMAPFILEHEADER), 1, inptr);
Szeretnék néhány referenciát futtatni
BITMAPFILEHEADER bf
rövidítést kérek a BITMAPFILEHEADER programhoz?
Csak tudom
typedef <oldname> <newname>
Hogy jön, csak működik?
Előre is köszönöm a segítséget, hogy tisztázzam ezt a pontot számomra.
Válasz
Feltételezem, hogy azt kérdezi, miért írja be a typedef a bmp.h
működik. Ha nem, kérjük, pontosítsa kérdését, és frissítem a választ.
A bmp.h
mezőben:
typedef struct { WORD bfType; DWORD bfSize; WORD bfReserved1; WORD bfReserved2; DWORD bfOffBits; } __attribute__((__packed__)) BITMAPFILEHEADER;
valóban ugyanaz, mint egy utasítás:
typedef <oldname> <newname>;
Ebben a konkrét esetben a <oldname>
valójában az összes következő:
struct { WORD bfType; DWORD bfSize; WORD bfReserved1; WORD bfReserved2; DWORD bfOffBits; } __attribute__((__packed__))
amely egy névtelen szerkezet. A teljes utasítás felveszi ezt a meg nem nevezett struktúrát és álnevet készít hozzá (BITMAPFILEHEADER
).
Mostantól használhatja az BITMAPFILEHEADER
mint olyan típus, mint int
vagy double
. A BITMAPFILEHEADER bf
deklaráció elegendő memóriát foglal el egy helyi változó számára az egész szerkezet tárolásához.
Megjegyzések
- Most már értem. Nagyon köszönöm.