2017-08-11 8 views
5

zk & R C języka programowania:Co to jest element nie będący w polu struktury lub związku?

Człon niż pole struktury unia lub może mieć dowolny typ obiektu.

Człon pole (co nie musi mieć declarator, a zatem mogą być nazwy) jest typu int unsigned int lub podpisane int i jest interpretowany jako obiektu integralnego typu określonego długość w bitach ; to, czy pole int jest traktowane jako podpisane, zależy od implementacji.

...

Człon niż pole konstrukcji jest ustawiany w adresowania granicach w zależności od jego rodzaju; dlatego mogą istnieć nienazwane otwory w strukturze.

  1. Myślałem, że członkowie struktury lub unii nazywane są jego pól. Czym więc jest nie-pole członek struktury lub związku? Jak różni się od członka pola?
  2. Czy możesz wyjaśnić: "Element niebędący polem struktury lub związku może mieć dowolny typ obiektu" z kilkoma przykładami?
  3. Czy drugie zdanie w wycenie oznacza, że ​​element pola może mieć wartość tylko typ int, unsigned int lub signed int?
  4. Ostatnie zdanie w cytowanej wzmiance mówi o tym, że element niebędący polem jest ustawiony na . Czy element pola jest wyrównany? Jeśli nie, w jaki sposób element pola jest przechowywany w pamięci?

Dzięki.

Odpowiedz

7

Członek pole jest obecnie nazywany bit field użytkownika:

int i : 3;  // named bit-field member 
int : 5;  // unnamed bit-field member 
int j;   // non-bit-field member 
const char *s; // non-bit-field member, non-integer type 

When to use bit-fields in C?