来自K&R《C语言程序设计》:
结构体或联合体的非字段成员可以有任何对象类型。
字段成员(可以没有声明符,因此可能是未命名的)具有int、unsigned int或signed int类型,并被解释为指定位数的整数类型对象;int字段是否被视为带符号是与实现相关的。
...
结构体的非字段成员根据其类型在寻址边界上对齐;因此,在结构体中可能存在未命名的空洞。
- 我认为结构体或联合体的成员被称为它的字段。那么什么是结构体或联合体的非字段成员?它与字段成员有何不同?
- 您能举一些例子解释“结构体或联合体的非字段成员可以有任何对象类型”吗?
- 引用中的第二句话是否意味着字段成员只能具有int、unsigned int或signed int类型?
- 引用中的最后一句话提到非字段成员是对齐的。字段成员是否也对齐?如果不是,那么字段成员如何存储在内存中?
谢谢。