打印
[51单片机]

这样的宏定义是什么意思?!

[复制链接]
1343|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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)

使用特权

评论回复
5
mini1986| | 2017-9-11 15:42 | 只看该作者
方便表示每个位的含义而已......

使用特权

评论回复
6
前功尽弃| | 2017-9-12 13:28 | 只看该作者
多看书,

使用特权

评论回复
7
redsun525| | 2017-9-27 17:41 | 只看该作者
(1<<1)   =00000010;
(1<<2)   =00000100;
(1<<3)   =00001000;
(1<<4)   =00010000;

使用特权

评论回复
8
小将wzj| | 2017-11-16 15:12 | 只看该作者
其实就是简单的移位

使用特权

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

本版积分规则

14

主题

86

帖子

1

粉丝