社区
C++ 语言
帖子详情
这两个结构体,为什么用sizeof测得的大小会一样呢??
bugzhao
2006-03-06 02:24:51
struct A1
{
int a;
char c1;
char c2;
double d;
};
struct A2
{
//int a;
char c1;
char c2;
double d;
};
int main()
{
cout<<sizeof(A1)<<" "<<sizeof(A2)<<endl
return 0;
}
运行结果为:16 16
可是A2和A1根本不一样啊
...全文
208
6
打赏
收藏
这两个结构体,为什么用sizeof测得的大小会一样呢??
struct A1 { int a; char c1; char c2; double d; }; struct A2 { //int a; char c1; char c2; double d; }; int main() { cout<<sizeof(A1)<<" "<<sizeof(A2)<<endl return 0; } 运行结果为:16 16 可是A2和A1根本不一样啊
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
abblly
2006-03-06
打赏
举报
回复
又是结构对齐,其实CSDN上很多关于这个问题的帖子,可以先搜索,如果找不到再提问。
marenjie
2006-03-06
打赏
举报
回复
字节对齐的关系...结构体的大小一定是其中最宽元素的倍数...
lisypro
2006-03-06
打赏
举报
回复
呵呵,结构体对齐的问题。
菲斯可儿
2006-03-06
打赏
举报
回复
呵呵,结构体对齐的问题。
bugzhao
2006-03-06
打赏
举报
回复
不好意思,在百度上找到答案了,因为我的编译器设置了#pragma pack(8)
我以为默认是设置为#pragma pack(4)呢
bugzhao
2006-03-06
打赏
举报
回复
更郁闷的是,当把A1、A2中的d变量也屏蔽掉后,即改为:
struct A1
{
int a;
char c1;
char c2;
//double d;
};
struct A2
{
//int a;
char c1;
char c2;
//double d;
};
则最终输出结果变为:
8 2
谁能解释一下这是为什么啊??难道跟编译器的地址对齐有关吗?
计算
结构体
及其中元素的
大小
在接触C++八股文的过程中,回顾了关于
结构体
内存对齐的知识,另外还有一些新的自定义对齐方式的方法,特此说明并举例一二。
C++ 学习杂谈:
sizeof
和
sizeof
(string)的问题
最近遇到一个令我困惑的问题,就是
sizeof
(string)的值,之前在vs2010上
测得
是固定28,最近在用CLion,上面
测得
是4,出现了不一样的结果,我又在vs2013上试了一下,结果又不一样,在vs2013上是32. 查阅了相关资料得出结论:string的实现在各库中可能有所不同,但是在同一库中相同一点是,无论你的string里放多长的字符串,它的
sizeof
()都是固定的,字符串所占...
sizeof
与指针步长
开始学c语言的时候早早就接触到了
sizeof
这个关键字,当时就有一个让我非常困惑的问题,为什么
sizeof
能够测量出数组的长度,但是用
sizeof
去测量一个指向数组的指针,却只能得到指针值的长度。 就像这样 int a[20]; int *b = a; printf("%d\n",
sizeof
(a)); printf("%d\n",
sizeof
(b)); 结...
解密
结构体
大小
之谜
此文讲解
结构体
大小
的计算,包括
结构体
对齐的规则。
结构体
变量的
sizeof
计算
结构体
字节对齐准则: 1.
结构体
变量的首地址能够被其最宽基本类型成员的
大小
所整除; 2.
结构体
每个成员相对于
结构体
首地址的偏移量都是当前成员
大小
的整数倍,如有需要编译器
会
在成员之间加上填充字节; 3.
结构体
的总
大小
为
结构体
最宽基本类型成员
大小
的整数倍,如有需要编译器
会
在最末一个成员之后加上填充字节。 4. 在嵌套结构中需要把内部‘打散'后再进行对齐计算。 //
sizeof
(结...
C++ 语言
65,211
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章