struct data { int a; float b; double c; char d; } u; 结构体类型变量u占用存储空间为________。

如题所述

24。这涉及内存对齐的因素。
float是4字节,所以b的地址必须是4的倍数,所以a后面要补2个空字节。
这样a,b一共就是8个字节(其中2个是空字节),double正好是8字节,所以c不用对齐了。
最后d本身占1个字节,内存对齐有一条规则是结构体大小必须是最大的成员的长度的整数倍,最大成员是c,长度为8,所以结构体大小必须是8的倍数,所以d后面要补7个字节。
总共是24个字节(其中有9个空字节)
温馨提示:答案为网友推荐,仅供参考
相似回答