我认为or
是c ++中的关键字。
可能是我最近做了太多的python代码,但我发现or
比||
更具可读性,xor
比^
更具可读性。
对符号运算符使用替代词是否是个好主意? 为什么我看不到他们使用更多?
答案 0 :(得分:7)
不满意的答案是你应该使用符号运算符,因为其他人都这样做。
一个可以理解的更明智的理由是,它们在代码的其余部分中脱颖而出。
答案 1 :(得分:5)
对符号运算符使用替代词是否是一个好主意?
完全取决于代码的目标受众 - 人员和工具。人们可能不习惯他们,有些工具无法识别他们。 (有时这些工具使用< ciso646>将它们定义为宏。)
我开始使用“和”和“或”更多,特别是在C ++和Python之间切换时,它更具可读性。语言之间的一些额外的一致性比我最初认为的更重要,但更重要的是,&& amp;和|| 控制结构而不是运算符(即短路),从而使它们与运算符区分开来。
(是的,从技术上讲,它们是C ++中的运算符,但它们更类似于if,else,return,while等等,而不是+, - ,*和其他运算符。逗号和条件运算符类似控制结构,它们可能并不是巧合,它们经常被发现令人困惑,或者至少比单独的语句和if / else更不易读。)
但是,我很少在为SO编写的新代码中使用它们,例如,因为我还没有遇到过这样一个问题:提出这个问题比SO的C ++读者可读更重要。
答案 2 :(得分:3)
每个C ++程序员都知道&&
和||
。
并非每个C ++程序员都知道and
和or
是合法的选择。
仅凭这个原因,你最好坚持使用常用的东西。
很容易习惯,所以我说这不是什么大问题,绝对不值得让你的代码读者感到困惑。
答案 3 :(得分:3)
这些关键字是替代标记,它们于1995年添加到标准(标准C)中。 https://en.wikipedia.org/wiki/C_alternative_tokens
为什么添加关键字:
替代令牌使程序员可以按位使用C语言和逻辑运算符,否则可能很难在某些国际和非QWERTY键盘上键入。
它们的添加方式:
它们在
iso646.h
标头中的C标准库中作为一组宏常量实现。
iso646.h
标头定义了11个宏,其中包括or
。
关于C ++:
上述标识符是
ISO C++ programming language
中的运算符关键字,不需要包含头文件。为了保持一致,C++98 standard
提供了标题<ciso646>
。但是,后一个文件没有任何作用,为空。
因此,使用C / C ++语言编写关键字是有历史原因的,它与更好地使用什么无关。如上所述,您应该遵守编码约定。
答案 4 :(得分:2)
我的第一个问题是or
bit-wise or |
或Boolean shortcut or ||
?
我打赌我的团队中有六个人不得不去查找。
所以我认为坚持标准惯例更好 因为这是人们习惯的。编程的重点不是含糊不清。
答案 5 :(得分:1)
这些关键字仅适用于无法处理特殊字符|
,&
等的终端。无论它们是否构成更易读的代码都是有争议的。
如果你知道||
的含义,那么or
的可读性就不如||
。如果你知道C ++的基本原理,即语法,那么在我看来,一个人的可读性不是另一个。
此外,大多数情况下,C ++程序员使用关键字的特殊字符替代品。因此,除非您正在启动项目并且正在设置规则,否则通常最好不要成为项目中的例外。
答案 6 :(得分:-2)
||
在C ++中是怎么说“boolean or”的。如果您实际编写or
,那么即使您可以让编译器接受它,您也会混淆代码的读者。
我真的很同情你的论点,灵巧。老实说。 C ++代码非常难看(而恕我直言,很难遵循),因为它依赖于类似线路噪声的符号系统。但这就是C ++哲学。如果你想要很好的英语可用代码,那么 C ++就不是你的语言。试试Ada。
我在这里很认真。在很多方面,阿达是一种更好的语言。这是其中之一。但是如果你要坚持使用C ++,你需要接受它。尝试用C ++编写Ada(或Pascal)并不比尝试在Ada中编写C ++或Fortran更好。