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

[复制链接]
883|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 | 显示全部楼层
谢谢!
fusexc 发表于 2020-7-24 17:39 | 显示全部楼层
kingsleych 发表于 2020-7-26 00:12 来自手机 | 显示全部楼层
这是很low的写法,正常的写法是枚举enum,然后用枚举类型声明变量
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

38

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部