4064|8

68

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

【求助】这句不是很明白 [复制链接]



PDEVICE_OBJECT AAA=NULL;
PDEVICE_OBJECT BBB=NULL;

AAA->Flags |= BBB->Flags & (DO_BUFFERED_IQ | DO_DIRECT_IQ | DO_POWER_PAGABLE);

&双目就是1 1 = 1 ,只有都是1的时候1 其他都是0  与
|双目就是1 0 = 1 ,0 1 = 1  1 1 = 1 有1的时候为1 其他都是0  或
^双目就是1 0 = 1 ,0 1 = 1 其他都是0  不同的时候为1  其他都是0 异或

知道 与  或 异或 但 不知道能不能用其他写法实现一样的功能

最新回复

&= 一般用来复位; |= 一般用来置位   详情 回复 发表于 2009-11-23 15:55
点赞 关注

回复
举报

65

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
顶一个。
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
还要什么方法呢?难道要做四则运算?
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

4
 
因为直观点 学习用途
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

5
 
.0.0.0
 
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

6
 
来看看
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

7
 
PDEVICE_OBJECT AAA=NULL;
PDEVICE_OBJECT BBB=NULL;

AAA->Flags |= BBB->Flags & (DO_BUFFERED_IQ | DO_DIRECT_IQ | DO_POWER_PAGABLE);

一般是一些寄存器的配置问题,
(DO_BUFFERED_IQ | DO_DIRECT_IQ | DO_POWER_PAGABLE); 一般是三个宏定义的0x常量,
最后将AAA->Flags的相应位配置成合适的值
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

8
 
AAA->Flags |= BBB->Flags & (DO_BUFFERED_IQ | DO_DIRECT_IQ | DO_POWER_PAGABLE); (1)
其中DO_BUFFERED_IQ , DO_DIRECT_IQ , DO_POWER_PAGABLE 通常是所在位不同的宏定义常量。
假设 DO_BUFFERED_IQ | DO_DIRECT_IQ | DO_POWER_PAGABLE == 0x07      //(0b111)
相同效果语句为
AAA->Flags |= BBB->Flags & 0x07;                                                (2)
事实上,在编译器处理时,会直接将(1)的代码处理成(2)的代码,二者执行效率是一样的,但(1)可读性比(2)强很多。

这种写法已经算比较直观了,而且执行效率也是比较高的。所以习惯就好了。
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

9
 
&= 一般用来复位;
|= 一般用来置位
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表