关于c语言的sizeof运算符

新手上路,请多包涵

#include <stdio.h >
void main(){
struct t1{
int a;
char b;
float c;
union uu{
char u1[5];
int u2[2];
}ua;
}myaa ;
printf("%dn",sizeof(myaa));
为啥结果不是17是20,求大神解答

阅读 1.6k
1 个回答

因为结构体的内存对齐了,这样能加速内存访问。

关于内存对齐的内容,你可以搜索 关键字:c 内存对齐

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进