论坛» 嵌入式开发» STM32

大家都用什么方式来表达枚举类型的变量

高工
2017-09-28 09:28 1楼

大家都用什么方式来表达枚举类型的变量。
方案I:
传统的枚举方式,如下:

enum tDelOpt { OS_DEL_NO_PEND = 1, OS_DEL_ALWAYS, };

与C语言教科书式的表达方式。其优点是编译器也可以参与检查,如果使用其它参数,则会提示错误。

方案II:
简单的宏定义方式,如下

#define OS_DEL_NO_PEND 1 #define OS_DEL_ALWAYS 2 uint8_t tDelOpt;



在使用时均通过switch函数来操作。

switch(tDelOpt) { case OS_DEL_NO_PEND : { ...; break; } case OS_DEL_ALWAYS : { ...; break; } }


大家怎么看待这个问题啊?

菜鸟
2017-09-28 09:37 2楼

这是个问题么?两种方式都可以,看你自己习惯 有的喜欢用第一种 有人习惯第二种

专家
2017-09-28 10:05 3楼

我是一个传统的人

高工
2017-09-28 10:37 4楼

第一种安全性更高一些吧 第二种毕竟是简单的替换

院士
2017-09-28 13:37 5楼

我倒是觉得,如果单纯的以枚举的方式来处理此变量,可能使用枚举变量定义处理比较好一些。

但也有一些其它应用时,枚举就显得有些“麻烦”了。

专家
2017-09-29 09:52 6楼

我是用传统的枚举方式。

高工
2017-09-29 17:54 7楼

从代码的阅读上和有提到的编译器可以检查的方面看都会选择枚举。用#define,如果多增加几个成员那不得一页都是#define #define....用枚举阅读和理解都会好一些咯

工程师
2018-02-27 02:13 8楼

一直用第一种,就这么学的,用习惯了。

也方便查错,理解,可读性强。

共8条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册]