c++中的对齐问题
struct A
{
char d;
int a;
float c;
double b;
};
为什么sizeof(A)=24;
如果按照四字节对齐,A的大小不应该是4+4+8+4,20字节吗?
{
char d;
int a;
float c;
double b;
};
为什么sizeof(A)=24;
如果按照四字节对齐,A的大小不应该是4+4+8+4,20字节吗?
全部评论
得是最大类型的整数倍,为了进cpu缓存能直接整行读取
cpp选手投起来
和CPU没关系,按double对齐,char和int可以放在一行
可以考虑一下招联金融哦,招行和联通合办的呢,流程10月11开始呢,可以看我主页https://www.nowcoder.com/share/jump/661068193252635417
4 + 4 + 4 + (4) + 8
默认按照最大的数据类型字节数对齐,八字节对齐,所以是24
4(空3) 4 8(空4) 8 这样?
最后要按照结构体内最大的8对齐
对齐两次吧,20是第一次对齐,然后还要调整到最大元素的整数倍?
你应该用的是64位的cpu,所以按照八字节对齐的,编译器决定的,常见编译器应该都会这样分不过没有保证,因为不是语言标准。
八字节对齐
double几个字节?
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
mio6899:咱好像是同一个项目,LLM那个
点赞 评论 收藏
分享
2025-11-13 14:37
门头沟学院 Java 程序员牛肉:是的,我觉得你最先需要的是多接触计算机圈子。我感觉你这个写的太幼稚了,根本没换位思考面试官。
你对实习的描述还是我写了前后端,我写了Restful接口,我用了EChatrs。你这让面试官怎么问你?问你什么是前后端?问你什么是Restful?讲真的兄弟,你这个简历在面试官眼里就是啥也不懂的好学生。所以一定要尽快加入一个圈子跟大家多聊聊,看看正儿八经的简历是怎么写的。
可以看一下我首页的简历怎么写那篇文章来学一下,你这里面的坑点我那篇文章里面都有讲过。
点赞 评论 收藏
分享