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

c语言中对于移位运算符的用法1 lt lt 0 是把 1 按 2 进制左移 0 位 结果还是 1 2 进制 00000001 1 lt lt 1 是把 1 按 2 进制左移 1 位 结果是 2 2 进制 00000010enum GTK ACCEL VISIBLE 1 lt lt 0 GTK ACCEL LOCKED 1 lt amp

//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 {

    

    …..

    

}

转载于:https://www.cnblogs.com/jxst441192/p/10559181.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/224508.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 上午11:46
下一篇 2026年3月17日 上午11:46


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号