打印

高手指教,这种变量的定义方式

[复制链接]
599|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hszhzwd|  楼主 | 2020-7-21 18:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 hszhzwd 于 2020-7-21 18:07 编辑

近来正在学习W5500的相关知识,在w5500.c的驱动文件中,定义S0_State为端口的运行状态变量,且该变量有3中状态:其定义格式如下:
/***************----- 端口的运行状态 -----***************/
unsigned char S0_State =0;  //端口0状态记录,1:端口完成初始化,2端口完成连接(可以正常传输数据)
    #define S_INIT      0x01    //端口完成初始化
    #define S_CONN      0x02    //端口完成连接,可以正常传输数据

请问:1.这是怎样的定义方式 ?2. 这样的格式就可以标明S_INIT、 S_CONN 和S0_State之间的关系?

使用特权

评论回复

相关帖子

沙发
elife| | 2020-7-21 22:36 | 只看该作者
这种最好定义成枚举型变量。这样定义可以使用,但编译器不进行类型检测。

使用特权

评论回复
板凳
xyz549040622| | 2020-7-21 23:34 | 只看该作者
简单的宏定义,进行替换而已。对于这种同一时刻只有唯一值的状态变量,定义为枚举类型确实好点。

使用特权

评论回复
地板
hszhzwd|  楼主 | 2020-7-22 08:47 | 只看该作者
谢谢!

使用特权

评论回复
5
fusexc| | 2020-7-24 17:39 | 只看该作者
谢谢

使用特权

评论回复
6
kingsleych| | 2020-7-26 00:12 | 只看该作者
这是很low的写法,正常的写法是枚举enum,然后用枚举类型声明变量

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

38

帖子

1

粉丝