设为首页 加入收藏

TOP

Linux GCC下sizeof内存情况分析
2014-11-24 12:16:34 来源: 作者: 【 】 浏览:0
Tags:Linux GCC sizeof 内存 情况 分析

情况:


输出结果:


STR: 8+4+4+1=17,同时要求4的倍数,为20。


STR1: 8+1+3+4=16,其中char后面填充了3个字节,因为int必须是4字节对齐,同时16已经为4的倍数。


STR2: 1+3+8+4=16,同上。


STR3: 1+3+8+4+1=17,通STR,结果为20。


一般在VC上结果不同,


VC按照具体的对齐,例如char, double,则一定是16,以double的8对齐,但是GCC中最大以4字节对齐,即使用了


也就是说,在GCC下pack命令只有小于等于4才生效。


同样也就有另一个问题,就是最终大小,在GCC中,要求是最大变量大小的整数倍,但是不超过4字节的倍数,但是VC中,是按照实际大小倍数。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇在Android下编译C 下一篇Android框架简介

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Redis 分布式锁全解 (2025-12-25 17:19:51)
·SpringBoot 整合 Red (2025-12-25 17:19:48)
·MongoDB 索引 - 菜鸟 (2025-12-25 17:19:45)
·What Is Linux (2025-12-25 16:57:17)
·Linux小白必备:超全 (2025-12-25 16:57:14)