seahawk
驱动牛犊
驱动牛犊
  • 注册日期2005-02-13
  • 最后登录2006-03-08
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1681回复:6

请问如何简洁有效地测试位?

楼主#
更多 发布于:2005-03-02 09:38
例如我想测试变量dwFlags中有没有参数MB_OK存在,我用的方法是
if(dwFlags&MB_OK==MB_OK){
    //存在
}else{
    //不存在
}
但是我觉得我的判断方法太业余,而且对于dwFlags中包含大量参数时这样测试会使代码看上去很乱,不知各位高人有没有什么高招?或者微软有关于测试这种参数的“样板代码”?
傍海渔村酣睡足 斜阳一脉洒千山 鲲鹏不待风潮起 万古江山多寂寥
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
沙发#
发布于:2005-03-02 22:59
INTEL在指令集有专门的BT类的位测试指令.
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
seahawk
驱动牛犊
驱动牛犊
  • 注册日期2005-02-13
  • 最后登录2006-03-08
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-03-03 09:29
INTEL在指令集有专门的BT类的位测试指令.

非常感谢 喔喔公鸡兄 的回答,我还是 游客 的时候就发现 喔喔公鸡兄非常热心, 现在看果然不假, 对我等这样的新人也毫不吝惜自己的宝贵时间,非常感激!

不过如果用嵌入汇编岂不是更复杂了,代码看上去更乱?
我的想法是我现在的方法用了一次位操作和一次比较,能不能直接进行位比较(位测试)?
傍海渔村酣睡足 斜阳一脉洒千山 鲲鹏不待风潮起 万古江山多寂寥
xbzjackey
驱动小牛
驱动小牛
  • 注册日期2002-12-27
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望34点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-03-09 13:21
if (dwFlags & MB_OK)就可以
回答好的不要忘了给分哦。。。
seahawk
驱动牛犊
驱动牛犊
  • 注册日期2005-02-13
  • 最后登录2006-03-08
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-03-10 21:41
if (dwFlags & MB_OK)就可以


9494,
怎么傻了,哎
傍海渔村酣睡足 斜阳一脉洒千山 鲲鹏不待风潮起 万古江山多寂寥
seahawk
驱动牛犊
驱动牛犊
  • 注册日期2005-02-13
  • 最后登录2006-03-08
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-03-12 08:04
[quote]if (dwFlags & MB_OK)就可以


9494,
怎么傻了,哎 [/quote]

为什么我的贴就没有给分按钮呢?
到别人的贴就有(不过按了说没权限:),为什么呢?
傍海渔村酣睡足 斜阳一脉洒千山 鲲鹏不待风潮起 万古江山多寂寥
zmwk
驱动中牛
驱动中牛
  • 注册日期2001-05-15
  • 最后登录2009-04-05
  • 粉丝0
  • 关注0
  • 积分59分
  • 威望51点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-03-17 21:48
例如我想测试变量dwFlags中有没有参数MB_OK存在,我用的方法是
if(dwFlags&MB_OK==MB_OK){
    //存在
}else{
    //不存在
}
但是我觉得我的判断方法太业余,而且对于dwFlags中包含大量参数时这样测试会使代码看上去很乱,不知各位高人有没有什么高招?或者微软有关于测试这种参数的“样板代码”?


#define IsOkButton(dwFlag)    ((dwFlag)&MB_OK)

if(IsOkButton(dwFlags))
{
}
else
{
}
A strong man can save himself. A great man can save another.
游客

返回顶部