您的位置:首页 > 其它

3.1.12 位运算

2016-04-07 09:22 253 查看
postfix结构体中的flags字段通常用位来记录程序状态,如MASTER_SERV结构体的int flags字段可以设置为如下状态:

#define MASTER_FLAG_THROTTLE (1<<0) /* we're having trouble */
#define MASTER_FLAG_MARK (1<<1) /* garbage collection support */
#define MASTER_FLAG_CONDWAKE (1<<2) /* wake up if actually used */
#define MASTER_FLAG_INETHOST (1<<3) /*endpoint name specifies host */
#define MASTER_FLAG_LOCAL_ONLY (1<<4) /* no remote clients */
#define MASTER_FLAG_LISTEN (1<<5) /* monitor this port */

c语言提供了6个位运算符:

&(与):&运算用来判断flags字段是否设置了某个标志,如

if(serv->flags & MASTER_FLAG_INETHOST) {

可以判断是否设置了MASTER_FLAG_INETHOST标志

|(或):|=运算用来设置flags标志,如

serv->flags|= MASTER_FLAG_INETHOST;

^(异或)

<<(左移):使用<<运算设置各个状态标志。

>>(右移)

~(取反)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: