and, or, 不与 &&, ||, !
是的,这是有效的 C++ :
if (false or (true and not false)) ...
除此之外,例如 bitand
和异或
。在 C 中,它们曾经是宏,但现在它们是关键字!您甚至可以让它们超载!那么为什么有人会教或写这样的东西:
if (false || (true && !(false))) ...
为什么没有人使用它们?
Yes, this is valid C++ :
if (false or (true and not false)) ...
Among others such as bitand
and xor
. In C, they used to be macros, but now they are keywords ! You can even overload them ! Then why would someone ever teach or write something like :
if (false || (true && !(false))) ...
Why is nobody using them ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
因为它们不允许在不包含附加头文件的情况下混合 C/C++ 代码,所以程序员不太了解它们,并且不能立即清楚
and
是短路版本还是按位版本。Because they don't allow mixed C/C++ code without including additional header files, are less known to programmers, and it's not immediately clear whether
and
is the short-circuit or bitwise version.为什么没有人?有些人使用它们。其他人则认为符号比文字更具可读性。
Why nobody? Some use them. Others think that symbols are more readable than words.
Visual C++ 不支持它们。
Visual C++ does not support them.
人们只是不知道它们(直到现在我还不知道)。
People just don't know about them(I didn't until now).