我认为or是c ++中的关键字.
可能是我最近做了太多的python代码,但我发现or它比可读性更强||,xor更易读^.
使用符号运算符替代词这个词是个好主意吗?
为什么我看不到他们使用更多?
每个 C++ 程序员都知道&&和||。
并非每个 C++ 程序员都意识到and和or是合法的替代方案。
仅出于这个原因,您最好坚持使用常用的内容。
它很容易习惯,所以我想说这没什么大不了的,而且绝对不值得让代码的读者感到困惑。
令人不满意的答案是你应该使用符号运算符,因为其他人都这样做.
一个可以说是更明智的理由是它们从代码的其余部分中脱颖而出.
这些关键字是1995 年添加到标准(标准 C)中的 替代令牌。请参阅此处的详细信息https://en.wikipedia.org/wiki/C_alternative_tokens
为什么添加关键词:
替代标记允许程序员使用 C 语言按位和逻辑运算符,否则这些运算符可能很难在某些国际键盘和非 QWERTY 键盘上键入。
它们是如何添加的:
它们在 C 标准库的头文件中作为一组宏常量实现
iso646.h。
标iso646.h头定义了 11 个宏,包括or.
那么 C++ 呢:
上述标识符是操作符关键字
ISO C++ programming language,不需要包含在头文件中。为了保持一致性,C++98 standard提供了 header<ciso646>。然而,后一个文件没有任何效果,是空的。
因此,C/C++ 语言中存在关键字是有历史原因的,与使用什么更好无关。如上所述,您应该遵守编码约定。
使用符号运算符替代词这个词是个好主意吗?
完全取决于您的代码的目标受众 - 人员和工具.人们可能不习惯他们,有些工具无法识别他们.(有时这些工具使用<ciso646>将它们定义为宏.)
我已经开始使用"和"和"或"更多,特别是在C++和Python之间切换时,它更具可读性.语言之间的一些额外的一致性比我最初认为的更重要,但更重要的是,&&和|| 是控制结构而不是操作员(即短路),从而使它们与运营商区别开来.
(是的,从技术上讲,它们是C++中的运算符,但它们更类似于if,else,return,while等等,而不是+, - ,*和其他运算符.逗号和条件运算符是类似的控制结构,并且它们可能并不是巧合,它们经常被发现令人困惑,或者至少比单独的语句和if/else更不易读.)
但是,我很少在为SO编写的新代码中使用它们,例如,因为我还没有遇到过这样一个问题:提出这个方面的问题比SO的C++读者可读更重要.