社区
C语言
帖子详情
如下结构体占用多少字节?谢谢
Jminger
2010-07-28 10:40:26
struct p5{
char c;
int d;
short i;
double f;
};
struct p5结构体以8字节对齐,那么该结构体占用多少字节呢?是24字节吗?谢谢。
...全文
485
10
打赏
收藏
如下结构体占用多少字节?谢谢
struct p5{ char c; int d; short i; double f; }; struct p5结构体以8字节对齐,那么该结构体占用多少字节呢?是24字节吗?谢谢。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Jminger
2010-07-28
打赏
举报
回复
刚才我试了一下,GCC编译器默认是4字节对齐。所以不加-malign-double编译选项的话,此时编译出来就是占用20字节。如果加-malign-double编译选项,那么就是占用24字节。呵呵
newxdlysk
2010-07-28
打赏
举报
回复
楼主什么编译器 我vc gcc都是24
liutengfeigo
2010-07-28
打赏
举报
回复
....
Jminger
2010-07-28
打赏
举报
回复
5楼的计算方法应该是正确的,但是实际上sizeof求解出来是20字节,不知道到为什么?呵呵
newxdlysk
2010-07-28
打赏
举报
回复
数据成员对齐规则:结构(struct)(或联合(union))的数据成员,第一个数据成员放在offset为0的地方,以后每个数据成员存储的起始位置要从该成员大小的整数倍开始(比如int在32位机为4字节,则要从4的整数倍地址开始存储。
newxdlysk
2010-07-28
打赏
举报
回复
char [0]
int [4]-[7]
short [8]-[9]
double [16]-[23]
一共24个
Jminger
2010-07-28
打赏
举报
回复
不是16,int类型本身还要4字节对齐,short本身还要2字节对齐。
mstlq
2010-07-28
打赏
举报
回复
按8字节对齐的话,就是16
yongziqd
2010-07-28
打赏
举报
回复
1+4+2+4=10
DayDayUpCQ
2010-07-28
打赏
举报
回复
不太懂,可以用sizeof求一下,等待高手解答,顶一下
《C语言基础》 之 第10章
结构体
课程内容:为什么需要
结构体
、定义一个
结构体
类型、
结构体
变量的声明和定义、sizeof测试
结构体
变量
字节
、
结构体
成员的普通访问方式、使用指针访问
结构体
成员、
结构体
嵌套、
结构体
传参、
结构体
数组。
C语言——
结构体
内存对齐(计算
结构体
占用
的
字节
数)
如果不考虑或者不存在内存对齐问题,这个
结构体
应该占1+4+1 = 6个
字节
,然而事实上它占了12个
字节
,???,这就涉及到内存对齐问题了。
结构体
中的成员可以是不同的数据类型,成员按照定义时的顺序依次存储在连续...
c语言
结构体
变量所占
字节
计算,【C语言】
结构体
占用
字节
数及存储与空间分配...
在计算
结构体
大小时需要考虑其内存布局,
结构体
在内存中存放是按单元存放的,每个单元多大取决于
结构体
中最大基本类型的大小,下面我们看几个例子:1.struct A{char a;int b;short c;}str1;这里char占1个
字节
,int占...
结构体
字节
对齐详解
让我们运行实测一下,测试程序exampl.cpp编译并执行程序,结果如下所示每个
结构体
的
占用
空间如我们所知道的char是1,int是4,short是2,累加结果应该为7,但最后
结构体
占用
的
字节
却是12个,这个就是
结构体
的。...
C语言中
结构体
占用
内存大小
cpu每次传输数据大小由它的总线条数决定,32位传输4个
字节
,64位传输8个
字节
。 这里以64位系统举例,若声明一个变量大小为8
字节
,起始地址位1,而cpu读取的地址为0~7, 则该变量需要读取两次,显然降低了cpu的性能...
C语言
69,371
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章