结构体、联合体和位域的深入解析
1. 记录与结构体概述
在编程中,描述对象特征的信息,如公司或客户的相关信息,通常会被组织成记录。记录有助于信息的组织、展示和存储。在 C 语言里,我们通过定义结构体类型来确定记录中字段的名称和类型,这些字段被称作结构体的成员。
联合体的定义方式与结构体类似,但不同的是,联合体的所有成员都从相同的地址开始。当你想在内存的同一位置存储不同类型的对象时,就可以定义联合体类型。
除了基本类型和派生类型,结构体和联合体的成员还能包含位域。位域是由指定数量的位组成的整数变量,通过定义位域,可将可寻址的内存单元拆分为能按名称寻址的单个位组。
2. 结构体类型的定义
结构体类型的定义以关键字 struct
开头,成员声明列表包含在花括号内,形式如下:
struct [tag_name] { member_declaration_list };
结构体至少要有一个成员。例如,下面定义了 struct Date
类型,它有三个 short
类型的成员:
struct Date { short month, day, year; };
这里, Date
是结构体类型的标签, year
、 month
和 day