您的位置:首页 > 其它

一个低级的常见错误

2013-10-22 15:22 246 查看
    今天遇到如下代码:

    (1)#define PB_REG_SLCM_CB_INFO_VALID    0x1 << 2

    (2)nSimInitInfo &= ~PB_REG_SLCM_CB_INFO_VALID;

    

    跑到(2)处时,nSimInitInfo = 0x03, 本意是把nSimInitInfo的bit3清零的,可是(2)执行后,nSimInitInfo = 0x00。 看了好一会,没看出是WHY??

    

    原因:宏是直接替换的。因此:0x1 << 2应该改为:(0x1 << 2)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: