c语言中对于移位运算符的用法

//1 << 0 是把1 按2进制 左移0位,结果还是 1 ,2进制 0000 0001

//1 << 1, 是把1 按2进制 左移1位,结果是2,2进制 0000 0010

enum

{

GTK_ACCEL_VISIBLE = 1 << 0,

GTK_ACCEL_LOCKED = 1 << 1,

GTK_ACCEL_MASK = 0x07

}

//等价于:

#define GTK_ACCEL_VISIBLE (1 << 0)

#define GTK_ACCEL_LOCKED (1 << 1)

#define GTK_ACCEL_MASK 0x07

typedef enum

{

GTK_ACCEL_VISIBLE ...

GTK_ACCEL_LOCKED ...

GTK_ACCEL_MASK ...

} GtkAccelFlags;

//定义变量类型: GtkAccelFlags

//

//该类型变量正确的取值 只有 GTK_ACCEL_VISIBLE,GTK_ACCEL_LOCKED,GTK_ACCEL_MASK。

//

//其它值是错误的。

//

//

//顾名思义:

//

//GtkAccelFlags GTK 进入标志

//

//GTK_ACCEL_VISIBLE 可见 0000 0001

//

//GTK_ACCEL_LOCKED 锁定 0000 0010

//

//GTK_ACCEL_MASK 屏蔽值 0000 0111

//应用例子:

GtkAccelFlags flag1;

flag1 = 。。。;

if (flag1 == GTK_ACCEL_VISIBLE){

....

} else {

.....

}

上一篇:Java编程思想读书笔记(二)【一切都是对象】


下一篇:【MySQL】MySQL无基础学习和入门之二:MySQL的安装