天天看點

C語言 0>>1是什麼意思,C語言 1 << 0 是什麼意思

滿意答案

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 {

.....

}

00分享舉報