历史上的今天
返回首页

历史上的今天

今天是:2025年03月11日(星期二)

正在发生

2020年03月11日 | MSP430之枚举变量大小

2020-03-11 来源:eefocus

一直都很好奇枚举变量到底是如何让占用存储空间的,网上好多文章都说是占用int字节的大小,但是今天测试了一下,发现不是那么回事。


操作系统:WIN7 64bit

IDE:IAR 5.5

实验平台: MP430F4793

先说结论:

实际使用发现枚举变量的大小并不是固定不变的,而是跟随成员的取值范围而变化,

并且枚举变量为2个字节(正好是MSP430字节对齐的大小)时,存储占用反而变小。


下面是编译后的结果:


初始情况:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

成员取值范围UINT8足以满足,所以是一个字节;

另外,增加成员并不会改变编译结果


给最后一个成员赋值65535:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

此时,成员的取值范至少需要两个字节才能存储,所以可以看到枚举变量的大小是2字节,另外,编译后所占的存储空间反而变小了。猜测可能和字节对齐有关系。


将第一个成员赋值-1:

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

-1到65535,2个字节已经不够了,所以枚举变量扩大到了4字节。


赋值154554546545:

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

枚举变量大小到了8字节。

推荐阅读

史海拾趣

酷宅(Coolkit)公司的发展小趣事

酷宅科技始终将技术创新作为公司发展的核心驱动力。公司不断投入研发资源,推动物联网、云计算、大数据等前沿技术的研发和应用。通过技术创新,酷宅科技不仅提高了产品的智能化水平,还降低了生产成本,提高了生产效率。同时,公司还积极与高校、科研机构等合作,共同开展技术攻关和人才培养工作,为公司的长期发展提供坚实的技术支持。

Gespac Inc公司的发展小趣事

酷宅科技始终将技术创新作为公司发展的核心驱动力。公司不断投入研发资源,推动物联网、云计算、大数据等前沿技术的研发和应用。通过技术创新,酷宅科技不仅提高了产品的智能化水平,还降低了生产成本,提高了生产效率。同时,公司还积极与高校、科研机构等合作,共同开展技术攻关和人才培养工作,为公司的长期发展提供坚实的技术支持。

Friedrich Lütze GmbH公司的发展小趣事

进入21世纪,随着信息技术的飞速发展和工业4.0时代的到来,电子行业面临着前所未有的技术变革。Friedrich Lütze GmbH 积极应对这一挑战,致力于将物联网(IoT)、大数据、人工智能等先进技术融入产品之中,推动公司向智能化、网络化方向转型升级。公司通过建立智能制造体系,提升生产效率和产品质量,同时开发出更加智能、便捷的工业自动化解决方案,为客户提供更加全面的服务。

aconno公司的发展小趣事

品质是aconno公司发展的基石。公司从一开始就注重产品质量和用户体验,从原材料采购到生产工艺,再到产品测试,每一个环节都严格把关。这种对品质的坚持,使得aconno的产品在市场上赢得了良好的声誉。同时,公司还建立了完善的售后服务体系,为用户提供及时、专业的技术支持,进一步增强了用户的信任度和忠诚度。

Bomar Interconnect公司的发展小趣事

为了确保产品质量和稳定性,Bomar Interconnect公司建立了严格的质量管理体系。公司引进了先进的质量检测设备和方法,对原材料、生产过程、成品进行全面检测和控制。同时,公司还加强了员工培训,提高了员工的质量意识和操作技能。这些措施有效提升了产品的质量水平,降低了不良品率,为客户提供了更加可靠的产品和服务。

CNC Tech公司的发展小趣事

CNC Tech公司深知,在竞争激烈的电子行业中,品质是赢得客户信任和市场口碑的关键。因此,公司始终坚持品质至上的原则,从原材料采购到生产制造的每一个环节都严格把控品质。CNC Tech还建立了完善的品质管理体系,通过严格的质量检测和持续的技术改进,确保每一台出厂的设备都能达到客户的期望和要求。正是凭借这种对品质的执着追求,CNC Tech赢得了广大客户的信赖和好评。

问答坊 | AI 解惑

调ADC用的小工具

本帖最后由 paulhyde 于 2014-9-15 03:41 编辑 我花了很大气力写的GUIDE,给组里那个写程序 的调ADC用,希望对大家有用!!!!!!!!!!!!!!!!!!!!!! 忍了忍,还是拿出来分享吧 希望大家有什么好东西也共享一下 互相学习[free] ...…

查看全部问答>

我爱龙芯之简介篇

     前段时间在论坛上上传了一个关于龙芯的PPT,应管理员soso的想法,觉得可以收集一点龙芯的资料,让我们认识自己中国人的芯。以下部分是我结合百科词条摘录的一部分内容,作为对龙芯的简单介绍吧!     其实, ...…

查看全部问答>

嵌入式实时操作系统μCOS-II(第二版)

嵌入式实时操作系统μCOS-II(第二版)…

查看全部问答>

企业虚拟化项目十个重要技术问题中国IDC圈

企业虚拟化项目十个重要技术问题中国IDC圈 利用虚拟化技术,把软件从硬件当中抽取出来,创建灵活、动态的环境,这样的好处很吸引人。不过能 否成功实施该项技术则取决于所需技能、安全和管理工具以及业务驱动因素是否到位。因为,在有些情 况下 ...…

查看全部问答>

请教烧写系统到开发板的问题

大家好,我在往开发板里烧写NK文件的时候在到达99%的时候,超级终端出现了: OEMVerifyMemory FAILED !OEMVERIFYMEMORY: Invalid image 然后烧写进度就停留在了99%,请问是什么错误啊?应该如何修改呢?…

查看全部问答>

这些分类:电子/电器/半导体/仪表仪器 是有下面这些分支吗?

集成电路IC设计/应用工程师 电子工程师 电路工程师 电器工程师 电声/音响工程师 自动控制工程师 仪器/仪表/计量 …

查看全部问答>

LED灯具损坏常见原因及保护方案

replyreload += \',\' + 697127;Timson,如果您要查看本帖隐藏内容请回复…

查看全部问答>

【我给XILINX资源中心做贡献】设计小技巧--Xilinx公司内部资料

设计小技巧--Xilinx公司内部资料这是一个在设计中常犯的错误列表,这些错误使得你的设计不可靠或者速度较慢。为了提高你的设计性能和提高速度的可靠性,你必须确定你的设计通过所有的这些检查。…

查看全部问答>

指纹传感器

有谁用过指纹传感器,分享一下自己的经典稀有资料吧?   网上资源较少,而且用的人也不多,也许你的指纹传感器就是你的自豪。…

查看全部问答>

求助大神一个很简单关于stm32的问题...

小弟刚接触stm32,图片上那个画红线的愣是没看懂,为什么给寄存器赋值先与运算一下呢?刚开始寄存器的值不是复位值么?那也就是全0,与运算一下后不都变成......先谢谢大家啦! [ 本帖最后由 九霄飞瀑 于 2012-3-8 23:51 编辑 ]…

查看全部问答>