电子产品世界 » 论坛首页 » 企业专区 » STM32 » 大家都用什么方式来表达枚举类型的变量


共7条 1/1 1 跳转至

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

菜鸟
2017-09-28 09:28:47    评分

大家都用什么方式来表达枚举类型的变量。
方案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;
}
}


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




关键词: 枚举     C语言     stm32    

菜鸟
2017-09-28 09:37:29    评分
2楼

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


专家
2017-09-28 10:05:59    评分
3楼

我是一个传统的人


管理员
2017-09-28 10:37:09    评分
4楼

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


专家
2017-09-28 13:37:34    评分
5楼

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

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


专家
2017-09-29 09:52:26    评分
6楼

我是用传统的枚举方式。


高工
2017-09-29 17:54:10    评分
7楼

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


共7条 1/1 1 跳转至

回复

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