BITMAPFILEHEADER bf in resize.c (Polski)

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

A potem w resize.c:

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

Chcę dowiedzieć się, jak uruchomić

BITMAPFILEHEADER bf 

Skrót do BITMAPFILEHEADER?

Wiem tylko

typedef <oldname> <newname> 

Jak to się dzieje, po prostu działa?

Z góry dziękuję za pomoc w wyjaśnieniu mi tej kwestii.

Odpowiedź

Zakładam, że pytasz, dlaczego w bmp.h działa. Jeśli nie, wyjaśnij pytanie, a ja zaktualizuję odpowiedź.

W bmp.h:

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

to tak naprawdę to samo, co instrukcja:

typedef <oldname> <newname>; 

W tym konkretnym przypadku <oldname> to właściwie wszystko z następujących:

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

, która jest strukturą anonimową. Pełna instrukcja przyjmuje tę nienazwaną strukturę i tworzy dla niej alias (BITMAPFILEHEADER).

Teraz możesz użyć BITMAPFILEHEADER jako typ, na przykład int lub double. Deklaracja BITMAPFILEHEADER bf rezerwuje wystarczającą ilość pamięci dla zmiennej lokalnej do przechowywania całej struktury.

Komentarze

  • Teraz rozumiem. Wielkie dzięki.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *