而且,或者,不是与&&,||,!

fou*_*nes 11 c++ logic keyword

是的,这是有效的C++:

if (false or (true and not false)) ...
Run Code Online (Sandbox Code Playgroud)

其中包括bitandxor.在C中,它们曾经是宏,但现在它们是关键字!你甚至可以超载他们!那么为什么有人会教或写类似的东西:

if (false || (true && !(false))) ...
Run Code Online (Sandbox Code Playgroud)

为什么没有人使用它们?

phi*_*hag 6

因为它们不允许混合的C/C++代码而不包括额外的头文件,所以程序员不太了解,并且不能立即清楚and是短路还是按位版本.

  • 是的,在`&`和`&&`之间,更容易猜出哪一个是位运算符而不是`和`和`bitand`.不幸的是,`not_eq`是一个关系,而`or_eq`是一个复合赋值运算符,具有讽刺意味的是按位运算. (3认同)