历史上的今天
今天是: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字节。
史海拾趣
|
企业虚拟化项目十个重要技术问题中国IDC圈 利用虚拟化技术,把软件从硬件当中抽取出来,创建灵活、动态的环境,这样的好处很吸引人。不过能 否成功实施该项技术则取决于所需技能、安全和管理工具以及业务驱动因素是否到位。因为,在有些情 况下 ...… 查看全部问答> |
|
大家好,我在往开发板里烧写NK文件的时候在到达99%的时候,超级终端出现了: OEMVerifyMemory FAILED !OEMVERIFYMEMORY: Invalid image 然后烧写进度就停留在了99%,请问是什么错误啊?应该如何修改呢?… 查看全部问答> |
|
【我给XILINX资源中心做贡献】设计小技巧--Xilinx公司内部资料 设计小技巧--Xilinx公司内部资料这是一个在设计中常犯的错误列表,这些错误使得你的设计不可靠或者速度较慢。为了提高你的设计性能和提高速度的可靠性,你必须确定你的设计通过所有的这些检查。… 查看全部问答> |
|
小弟刚接触stm32,图片上那个画红线的愣是没看懂,为什么给寄存器赋值先与运算一下呢?刚开始寄存器的值不是复位值么?那也就是全0,与运算一下后不都变成......先谢谢大家啦! [ 本帖最后由 九霄飞瀑 于 2012-3-8 23:51 编辑 ]… 查看全部问答> |




