C语言题这个是什么意思请高手说明一下

(17)若有以下说明和定义语句,则变量w在内存中所占的字节数是 【19】 。
union aa {float x; float y; char c〔6〕; };
struct st{ union aa v; float w〔5〕; double ave; } w;
正确答案: 1.(34)

为什么是34

union aa v:取最唱的成员的长度,所以取char c〔6〕,占6个字节.
float w〔5〕; 占用5*4=20个字节
double ave;:占用8个字节.
所以和为34
(共同体变量所占的内存长度=最长的成员的长度
结构体变量所占的内存长度=各个成员的长度之和)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-09-19
答案是错误的。
应该是40。
结构体有字节对齐的问题。
第2个回答  2007-09-19
字节对齐是和CPU,编译器等相关的
相似回答