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

Tricks for catching & and && misuse in C?

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

我最近的一个很简单 - 即我写了

value = data && 0x0123

在我中断并看到值是 0 或 1 之后很明显,但我想要一种方法来更早地捕获它,类似于编码

if (1 == END) ... 

发现 === 的误用。

有什么想法吗?

在 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 中将这些定义为宏(感谢 Shafik Yaghmour,more details in one of his answers