c++中的对齐问题

struct A
{
char d;
int a;
float c;
double b;
};

为什么sizeof(A)=24;
如果按照四字节对齐,A的大小不应该是4+4+8+4,20字节吗?
全部评论
得是最大类型的整数倍,为了进cpu缓存能直接整行读取
6 回复 分享
发布于 2023-09-22 23:50 广东
cpp选手投起来
1 回复 分享
发布于 2023-10-08 12:48 湖南
和CPU没关系,按double对齐,char和int可以放在一行 可以考虑一下招联金融哦,招行和联通合办的呢,流程10月11开始呢,可以看我主页https://www.nowcoder.com/share/jump/661068193252635417
1 回复 分享
发布于 2023-10-08 09:02 广东
4 + 4 + 4 + (4) + 8
1 回复 分享
发布于 2023-09-22 23:08 江苏
默认按照最大的数据类型字节数对齐,八字节对齐,所以是24
1 回复 分享
发布于 2023-09-22 23:06 四川
4(空3) 4 8(空4) 8 这样?
点赞 回复 分享
发布于 2023-10-16 13:46 上海
最后要按照结构体内最大的8对齐
点赞 回复 分享
发布于 2023-10-13 11:59 江苏
对齐两次吧,20是第一次对齐,然后还要调整到最大元素的整数倍?
点赞 回复 分享
发布于 2023-10-09 11:47 重庆
你应该用的是64位的cpu,所以按照八字节对齐的,编译器决定的,常见编译器应该都会这样分不过没有保证,因为不是语言标准。
点赞 回复 分享
发布于 2023-09-23 15:24 山西
八字节对齐
点赞 回复 分享
发布于 2023-09-22 23:04 浙江
double几个字节?
点赞 回复 分享
发布于 2023-09-22 23:00 广东

相关推荐

珩珺:那些经历都太大太空了,实习的情况不了解,大创项目连名字、背景、目的及意义都没体现出来;地摊经济更是看完连卖的什么产品都不知道,项目成果直接写营收多少都更直观真实一点;后面那个校文体部的更是工作内容是组织活动整理流程,成果变成了当志愿者,而且你们学校本科学生会大一入学就直接当部长吗,志愿里面还提到了疫情防控,全面解封是22年12月的事情,可能时间上也有冲突。可能你花了钱人家就用AI给你随便写了点内容改了一下,没什么体现个性化的点
点赞 评论 收藏
分享
评论
2
4
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务