有变量
struct{ char type; int num; char name[10]; }rec;char是1字节,int是4字节,若按4字节对齐,那么sizeof(rec)等于()
根据给定的结构体定义:
char 类型的 type 占用 1 字节。
int 类型的 num 需要按照对齐基准(4 字节)对齐,因此占用 4 字节。
char 数组的 name 需要按照对齐基准(1 字节)对齐,数组长度为 10,占用 10 字节。
结构体中的字段将按照最大字段大小的倍数进行对齐,也就是 4 字节。在结构体末尾可能会有额外的填充字节来满足对齐要求。
计算总的填充字节和结构体的大小:
1(type 的大小) + 3(对齐填充) + 4(num 的大小) + 10(name 数组的大小) + 2(name 数组的对齐填充) = 20 字节
所以,sizeof(rec) 的值为 20 字节。