由于在C中输入"&"而不是"&&",我在上个月遇到了一系列错误.
我最近的一个很简单 - 就是我写的
value = data && 0x0123
Run Code Online (Sandbox Code Playgroud)
在我休息后看到该值为0或1时显而易见,但我想要一种方法来捕捉它,类似于编码
if (1 == END) ...
Run Code Online (Sandbox Code Playgroud)
抓住误用=和==.
有任何想法吗?
在C++,and并bitand有替代品&&,并&分别(你可以找到所有的替代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;
}
Run Code Online (Sandbox Code Playgroud)
住在Coliru (感谢Fred Larson的std :: boolalpha建议)
C99在iso646.h中将这些定义为宏(Credit转到Shafik Yaghmour,在他的一个答案中有更多细节)