社区
C++ 语言
帖子详情
关于字节对齐
cwbcwb505
2010-11-10 11:29:59
typedef union {long i; int k[5]; char c;} DATE;
struct data { int cat; DATE cow; double dog;} too;
请问 sizeof(too) = ?
我最先以为是以结构体内最大的那个类型的整型陪为他的大小的,那么他的大小为应该为40,但是我测试了以后发现不是
请问应该是多少呢?应该是怎么算的呢?
...全文
63
7
打赏
收藏
关于字节对齐
typedef union {long i; int k[5]; char c;} DATE; struct data { int cat; DATE cow; double dog;} too; 请问 sizeof(too) = ? 我最先以为是以结构体内最大的那个类型的整型陪为他的大小的,那么他的大小为应该为40,但是我测试了以后发现不是 请问应该是多少呢?应该是怎么算的呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
luciferisnotsatan
2010-11-10
打赏
举报
回复
不同的设置,会导致结果不一样
不同编译器也会不一样
無_1024
2010-11-10
打赏
举报
回复
[Quote=引用 1 楼 csuxiaowu 的回复:]
DATE 为4*5 = 20
too 为4+20+8=32
[/Quote]
是32
分析如上
猫已经找不回了
2010-11-10
打赏
举报
回复
1:数据成员对齐规则:结构(struct)(或联合(union))的数据成员,第一个数据成员放在offset为0的地方,以后每个数据成员存储的起始位置要从该成员大小或者成员的子成员大小(只要该成员有子成员,比如说是数组,结构体等)的整数倍开始(比如int在32位机为4字节,则要从4的整数倍地址开始存储。
2:结构体作为成员:如果一个结构里有某些结构体成员,则结构体成员要从其内部最大元素大小的整数倍地址开始存储.(struct a里存有struct b,b里有char,int ,double等元素,那b应该从8的整数倍开始存储.)
3:收尾工作:结构体的总大小,也就是sizeof的结果,.必须是其内部最大成员的整数倍.不足的要补齐.
结果是32
猫已经找不回了
2010-11-10
打赏
举报
回复
http://blog.csdn.net/hairetz/archive/2009/04/16/4084088.aspx
以前总结过,把那3句话看完,肯定没问题。
shadowlsj
2010-11-10
打赏
举报
回复
先測下你機器中的INT, LONG, DOUBLE是多長吧。
跟機器有關係的。
而且這些變量都是按照default的4字節對齊,也不存在對齊問題。
按照 :long 8, int 4, double: 8 話 32 沒錯啦。
翅膀又硬了
2010-11-10
打赏
举报
回复
36。。。。
Csuxiaowu
2010-11-10
打赏
举报
回复
DATE 为4*5 = 20
too 为4+20+8=32
SpringBoot2整合Vue3+ArcoDesign字节跳动Vue
主要服务于字节跳动旗下中后台产品的体验设计和技术实现,主要由UED设计和开发同学共同构建及维护。 Arco Design 是一套企业级 UI 解决方案,拥有系统的设计规范和资源,依据此规范提供了覆盖 React、Vue、Mobile 的...
c语言中从字中取高低字节,关于
字节对齐
关于
字节对齐
一、快速理解1. 什么是
字节对齐
在C语言中,结构是一种复合数据类型,其构成元素既可以是基本数据类型(如int、long、float等)的变量,也可以是一些复合数据类型(如数组、结构、联合等)的数据单元。在结构...
字节对齐
问题详解
字节按照一定规则在空间上排列就是
字节对齐
。现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特 定的内存地址访问...
关于
字节对齐
的问题(vs.net)(转载)
转自http://nephen.bokee.com/4739983.html关于
字节对齐
的问题(vs.net) 请看下面的结构: struct MyStruct { double dda1; char dda; int type }; 对结构MyStruct采用sizeof会出现什么结果呢?sizeo
C++ 语言
64,648
社区成员
250,503
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章