您的位置 首页 分销

枚举常量在单片机编程中有何优点

枚举常量在单片机编程中有何好处-当变量的数值在几个范围之间,如一个week变量取值只有Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday。这样用enum比较好。当然也可以用define.但是define维护起来比较麻烦, 适合变量的数值范围值较少的时候。

什么时分需求用到enum呢?当变量的数值在几个规模之间,如一个week变量取值只要Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday。这样用enum比较好。当然也能够用define.可是define保护起来比较费事, 合适变量的数值规模值较少的时分。


 

1、用enum关键字阐明常量(即阐明枚举常量)有以下几点优点:

(1) 使程序更简单保护和直观。例如,下面界说的枚举是描绘UART支撑的传输bit位数,从枚举类型的界说就能够知道UART模块供给的传输bit的几种方式。

enum{usartDatabits4=USART_FRAME_DATABITS_FOUR,/*4databits(notavailableforUART).*/usartDatabits5=USART_FRAME_DATABITS_FIVE,/**《5databits(notavailableforUART).*/usartDatabits6=USART_FRAME_DATABITS_SIX,/**《6databits(notavailableforUART).*/usartDatabits7=USART_FRAME_DATABITS_SEVEN,/**《7databits(notavailableforUART).*/usartDatabits8=USART_FRAME_DATABITS_EIGHT,/**《8databits.*/usartDatabits9=USART_FRAME_DATABITS_NINE,/**《9databits.*/usartDatabits10=USART_FRAME_DATABITS_TEN,/**《10databits(notavailableforUART).*/}USART_Databits_Enum;

(2)使程序更安全

比方,在写底层驱动是,向上层供给一个UART初始化函数UarTInit(uint32 baudrate , uint32 bit)在调用该函数时,或许由于程序员不了解模块UART支撑的传输bit方式而供给了过错的bit参数。防止此类现象,咱们当然也能够在UarTInit()函数中对bit规模进行检查。假如参数取值是接连的还好,假如不接连运用多个if-else或switch。将消耗必定的ROMCPU时刻。

咱们能够将函数界说为UarTInit(uint32 baudrate , USART_Databits_Enum bit)。一来咱们能够经过检查USART_Databits_Enum枚举类型很简单知道UART支撑的传输bit方式。另一方面在编译的时分就能够防止传递过错的参数。

2、枚举与宏界说的差异和联络:

宏和枚举之间的不同主要在效果的时期和存储的方式不同,宏是在预处理的阶段进行替换作业的,它替换代码段的文本,程序运转的过程中宏已不存在了。而枚举是在程序运转之后才起效果的,枚举常量存储在数据段的静态存储区里。(在IAR编译环境中,枚举类型默以为字符型,在M3内核下编程,为了削减不必要的字符扩展指令,能够用?enum_is_int指令来强制使一切的枚举类型为4bytes。)

但也不能就此说宏比枚举好,假如需求界说十分多的常量,用一条enum {…。.}显着比一大堆define更明晰,枚举也能够用来界说一些特别类型,比方Bool,如: type enum {FALSE,TRUE} Bool;

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/fenxiao/346685.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部