捕获技巧和&&在C中误用?

时间:2015-01-13 19:44:04

标签: c++ c binary mask

由于“&”的错误输入,我在上个月遇到了一系列错误而不是“&&”在C.

我最近的一个很简单 - 就是我写的

value = data && 0x0123

在我休息后看到该值为0或1时很明显,但是我想要一种方法来捕捉这个,类似于编码

if (1 == END) ... 

抓住误导===

有什么想法吗?

1 个答案:

答案 0 :(得分:8)

在C ++中,andbitand分别是&&&的替代品(您可以在cppreference上找到所有替代品)。

#include <iostream>

int main()
{
    std::cout << std::boolalpha << (42 and 0x0123) << std::endl;
    std::cout << std::boolalpha << (42 bitand 0x0123) << std::endl;
    return 0;
}

Live on Coliru (感谢Fred Larson对std :: boolalpha的建议)

C99在iso646.h中将这些定义为宏(Credit to Shafik Yaghmour,more details in one of his answers