BITMAPFILEHEADER bf v resize.c

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

A pak v resize.c:

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

Chci vědět nějaký odkaz na spuštění

BITMAPFILEHEADER bf 

získat zkratku pro BITMAPFILEHEADER?

Já jen vím

typedef <oldname> <newname> 

Jak to přijde, prostě funguje?

Předem děkuji za pomoc s objasněním tohoto bodu.

Odpověď

Předpokládám, že se ptáte, proč se typedef v bmp.h funguje. Pokud ne, upřesněte prosím svou otázku a já aktualizuji odpověď.

V bmp.h:

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

je opravdu to samé jako prohlášení:

typedef <oldname> <newname>; 

V tomto konkrétním případě <oldname> je ve skutečnosti všechno z následujícího:

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

což je anonymní struktura. Celý příkaz přebírá tuto nepojmenovanou strukturu a vytvoří pro ni alias (BITMAPFILEHEADER).

Nyní můžete použít BITMAPFILEHEADER jako typ jako int nebo double. Deklarace BITMAPFILEHEADER bf rezervuje dostatek paměti pro místní proměnnou pro uložení celé této struktury.

Komentáře

  • Teď už chápu. Mnohokrát děkuji.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *