[51单片机] 这样的宏定义是什么意思?!

[复制链接]
 楼主| guanyumou 发表于 2017-9-10 18:48 | 显示全部楼层 |阅读模式
这样的宏定义是什么意思???
#define FUN_PARA_FLAG_TCP_SERVER                  (1<<1)                       
#define FUN_PARA_FLAG_LOW_PWR                     (1<<2)                       
#define SOCK_CTRL_FLAG_SOCKET_CLOSE             (1<<3)                        
#define SOCK_DISABLE_SEND_OK_INT                   (1<<4)  

而后在程序中有个子函数是这么用的:
guanyuran(FUN_PARA_FLAG_TCP_SERVER | SOCK_CTRL_FLAG_SOCKET_CLOSE) ;

请问这又如何理解?????                     
airwill 发表于 2017-9-10 22:52 | 显示全部楼层
就是某些位起个名罢了. 为什么要这么起, 看你的 SOCK 和 TCP 的协议吧,

函数里为何这样用, 也得去看协议才能搞明白.
不如请楼主去好好啃一啃协议吧
coody 发表于 2017-9-11 10:46 | 显示全部楼层
就是定义一个常数而已
ljc424 发表于 2017-9-11 15:10 | 显示全部楼层
第1位起名为FUN_PARA_FLAG_TCP_SERVER
也可以说FUN_PARA_FLAG_TCP_SERVER定义成二进制(00000010b)
mini1986 发表于 2017-9-11 15:42 | 显示全部楼层
方便表示每个位的含义而已......
前功尽弃 发表于 2017-9-12 13:28 | 显示全部楼层
多看书,
redsun525 发表于 2017-9-27 17:41 | 显示全部楼层
(1<<1)   =00000010;
(1<<2)   =00000100;
(1<<3)   =00001000;
(1<<4)   =00010000;
小将wzj 发表于 2017-11-16 15:12 | 显示全部楼层
其实就是简单的移位
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

86

帖子

1

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