社区
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,但是我测试了以后发现不是
请问应该是多少呢?应该是怎么算的呢?
...全文
67
7
打赏
收藏
关于字节对齐
typedef union {long i; int k[5]; char c;} DATE; struct data { int cat; DATE cow; double dog;} too; 请问 sizeof(too) = ? 我最先以为是以结构体内最大的那个类型的整型陪为他的大小的,那么他的大小为应该为40,但是我测试了以后发现不是 请问应该是多少呢?应该是怎么算的呢?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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
c语言中从字中取高低字节,关于
字节对齐
关于
字节对齐
一、快速理解1. 什么是
字节对齐
在C语言中,结构是一种复合数据类型,其构成元素既可以是基本数据类型(如int、long、float等)的变量,也可以是一些复合数据类型(如数组、结构、联合等)的数据单元。在结构...
关于
字节对齐
的理解
字节对齐
的剖析 一、需要了解的名词和概念 1、数据类型自身的对齐值:即数据本身所占字节长度。 2、结构体或类的自身对齐值:即其中数据成员类型对齐值的最大值。 3、指定对齐值:由编程人员通过#pragma pack(value)...
uboot中的
字节对齐
操作
很多朋友对uboot中汇编语句中关于
字节对齐
的代码很疑惑,比如: bic sp,sp #7 复制代码 上述代码的作用是完成8字节地址对齐,具体是对哪个地址呢?从代码可以看出是要调整SP指针所指向的地址。要想看懂这个代码首先...
关于
字节对齐
的问题(vs.net)(转载)
转自http://nephen.bokee.com/4739983.html关于
字节对齐
的问题(vs.net) 请看下面的结构: struct MyStruct { double dda1; char dda; int type }; 对结构MyStruct采用sizeof会出现什么结果呢?sizeo
C/C++中的
字节对齐
,结构体对齐,alignment,详细的解释
字节对齐
或者结构体对齐有什么作用?...首先关于
字节对齐
(对齐的英文原名是alignment,但是英文里面没有byte alignment这种叫法,我见到的有data alignment, data structure alignment, structure alignm
C++ 语言
65,186
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章