什么是结构或联合的非现场成员?

Tim*_*Tim 5 c

来自K&R C编程语言:

结构或联合的非字段成员可以具有任何对象类型.

字段成员(不需要声明符,因此可以是未命名的)具有int,unsigned int或signed int类型,并且被解释为指定长度的整数类型的对象(以位为单位); int字段是否被视为signed是依赖于实现的.

...

结构的非字段成员根据其类型在寻址边界处对齐; 因此,结构中可能存在未命名的孔.

  1. 我认为结构或联合的成员被称为其领域.那么结构或联合的非现场成员是什么?它与现场成员有什么不同?
  2. 你能用一些例子解释"结构或联合的非字段成员可能有任何对象类型"吗?
  3. 引用中的第二个句子是否表示字段成员只能具有int,unsigned int或signed int类型?
  4. 引文中的最后一句提到非字段成员是对齐的.场成员是否对齐?如果没有,字段成员如何存储在内存中?

谢谢.

eca*_*mur 7

现在,字段成员称为位字段成员:

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
Run Code Online (Sandbox Code Playgroud)

何时在C中使用位域?