Tho*_*oub 15 c++ boolean-logic language-lawyer
我正在使用C++ 11,两者都在没有任何警告的情况下进行编译,一个是最好的方法吗?
if(a && b)
Run Code Online (Sandbox Code Playgroud)
要么
if(a and b)
Run Code Online (Sandbox Code Playgroud)
BoB*_*ish 17
2.6替代令牌[lex.digraph]
1为一些运营商和标点符号提供了替代的令牌表示
2 在语言的所有方面,每个备选令牌的行为分别与其主要令牌相同,但其拼写除外.17表2中定义了备用令牌集.
无法粘贴表2,但它明确指出Alternative:and,Primary &&(同样适用于or和||).
所以它们完全相同.如果你想试着说服自己一个人比另一个人"更好",那就是你的事.如果其他人试图争论这样,他们最好有充分的理由.
编辑:上述表2:
Table 2 — Alternative tokens
Alternative Primary
<% {
%> }
<: [
:> ]
%: #
%:%: ##
and &&
bitor |
or ||
xor ˆ
compl ~
bitand &
and_eq &=
or_eq |=
xor_eq ˆ=
not !
not_eq !=
Run Code Online (Sandbox Code Playgroud)
编辑:也许值得注意,根据塞巴斯蒂安雷德尔,MS在这里打破规则.
我更喜欢&&而不是and.
&&众所周知并被接受,而许多人甚至不知道这and是有效的C++.and默认情况下,某些IDE不接受(和朋友).例如MSVC++.&&并且||根深蒂固.虽然and并or具有相同的优先级为&&和||,简单的事实,我已经习惯更不用说他们就更难读的条件.另一方面,and对于那些使用不使用的语言学习编程的程序员来说,更加冗长,也可能更容易使用&&.但有人可能会争辩说,这些人应该学习C++,而不是试图改变它的snytax.
我更喜欢(a和b),因为如果(a && b)和if(a&b),总是有机会意外混淆,给你带来很多麻烦.
| 归档时间: |
|
| 查看次数: |
1400 次 |
| 最近记录: |