如何正确理解c语言sizeof结构体

 时间:2024-10-17 09:02:33

1、首先我们看一下在本地机器上,基本类型占用的内存大小。如下图示例及运行结果所示:

如何正确理解c语言sizeof结构体

2、我们定义一个结构体,结构体中包含char, int, double三种类型。(因为在笔者机器上,long与int占用内存一样,所以就不添加long类型了)。并输出其占用内存大小,如下所示:

如何正确理解c语言sizeof结构体

3、上例中,输出结构体大小并不等于每个成员内存大小相加。这是因为字节对齐的缘故。为了使CPU能够对变量进行快速的访问,变量的起始地址应该具有某些特性,即所谓的”对齐”,比如4字节的int型,其起始地址应该位于4字节的边界上,即起始地址能够被4整除,也即对齐跟数据在内存中的位置有关。以下列出字节对齐的规则:

如何正确理解c语言sizeof结构体如何正确理解c语言sizeof结构体

6、所以,对于计算sizeof结构体大小,我们需要掌握字节对齐的规则,了解内存结构,就能知道结构体大小。在一些内存资源非常宝贵的地方,我们就可以通过调整结构体中成员顺序,从而达到减小对象大小,优化代码的目的。

如何正确理解c语言sizeof结构体
  • 300英雄莉娜·因巴斯怎么玩
  • 星际战甲中的MOD反射拔枪在哪获得?
  • 星际战甲光环卡怎么得
  • 编写软件测试计划的步骤?
  • Keil uVision4怎么关闭自动缩进
  • 热门搜索
    潮州旅游攻略 韩国釜山旅游 广东周边旅游景点大全 云南旅游酒店 深圳东部华侨城旅游 孕妇旅游团 中国旅游网站排名 埃及旅游景点 关于推进海南国际旅游岛建设发展的若干意见 山西省旅游地图