2017-08-11 22 views
5

選自K & R本C程序設計語言:什麼是結構或工會的非現場成員?

結構或聯合的非字段構件可具有任何對象類型。

字段構件(其不需要具有一個聲明符,並且因此可以是未命名的)具有int類型,無符號整型,或符號int, 和被解釋爲以位積分型指定 長度的一個目的; int字段是否被視爲有符號是 實現相關。

...

在取決於其類型的尋址邊界對齊的結構的非場構件;因此,在結構中可能存在未命名的孔 。

  1. 我認爲,一個結構或聯合的成員被稱爲其 領域。那麼什麼是結構或聯盟的非現場成員? 如何與現場成員不同?
  2. 你能解釋一下「一個結構或聯盟的非現場成員可能有任何對象類型嗎?」有一些例子嗎?
  3. 引號中的第二句是否意味着字段成員可以只有int,unsigned int或signed int?
  4. 引用中的最後一句話提到非字段成員對齊爲 。場成員是否對齊?如果不是,現場成員 如何存儲在內存中?

謝謝。

回答

7

字段構件現今稱爲bit field構件:

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?

相關問題