详解C++ sizeof(下)
sizeof作用于基本数据类型,在特定的平台和特定的编译器中,结果是确定的,如果使用sizeof计算构造类型:结构体、联合体和类的大小时,情况稍微复杂一些。这是因为结构体或类成员变量具有不同类型时,需进行成员变量的对齐。如下:在寻找S2的最宽基本数据类型时,包括其嵌套的结构体中的成员,从S1中寻找出最宽结构体数据类型是int,因此S2的最宽数据类型是int。对于“空结构体”的大小不为0,而是1。例如在存放一个开关量时,只有0和1 两种状态, 用一位即可表示。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为”位域”或”位段”。位域结构体的定义形式:注意,位域长度不应该大于该类型说明符对应的数据类型的位长度。
用户评论