2017-08-11 2 views
5

Von K & R Die Programmiersprache C:Was ist ein Nicht-Feld Mitglied einer Struktur oder Union?

Ein nicht-Feldelement einer Struktur oder Vereinigung jeden Objekttyp haben kann.

Ein Feldelement (das keinen declarator haben brauchen und somit unnamed sein kann) hat Typs int, unsigned int oder signiert int, und wird als ein Objekt der integralen Typ der angegebenen Länge in Bits interpretiert ; Ob ein int-Feld als signed behandelt wird, ist implementierungsabhängig.

...

Ein nicht-Feldelement einer Struktur bei einer Adressierungs Grenze ausgerichtet ist, von seinem Typ abhängt; daher können in einer Struktur unbenannte Löcher sein.

  1. Ich dachte, dass die Mitglieder einer Struktur oder Union sind seine Felder genannt. Also, was ist ein Nicht-Feld Mitglied einer Struktur oder Vereinigung? Wie unterscheidet sich von einem Feldmitglied?
  2. Können Sie erklären "Ein Nicht-Feld Mitglied einer Struktur oder Union kann beliebigen Objekttyp" mit einigen Beispielen?
  3. Bedeutet der zweite Satz im Zitat, dass ein Feldglied nur den Typ int, unsigned int oder int signiert haben kann?
  4. Der letzte Satz im Zitat erwähnt, dass ein Nicht-Feld Mitglied ausgerichtet ist. Ist ein Feld Mitglied ausgerichtet? Wenn nicht, wie wird ein Feldelement im Speicher gespeichert?

Danke.

Antwort

7

Ein Feld Mitglied heute heißt ein bit field Mitglied:

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?

Verwandte Themen