C++写'or'而不是||

C++ writing 'or' instead of ||

本文关键字:C++ or      更新时间:2023-10-16

可能的重复项:
C++替代代币?

我正在C++和我的一个朋友一起做一项任务,我们一直在他的电脑/环境(带有Eclipse的Macbook Pro)上进行大量编码。在一些代码中,他使用andor而不是&&||编写条件。代码在他的计算机上编译得很好,但是当我尝试在家中的计算机(装有Visual Studio 2010的PC)上编译它时,我遇到编译器错误并被迫切换它们。我的朋友还证明,这种语法在Linux环境中使用emacs/g++是有效的。

我以前从未见过这种事情。这是广泛使用还是被大多数编译器支持?

有一些"替代表示":andand_eqbitandbitorcomplnotnot_eqoror_eqxorxor_eq。 它们是C++的标准语言特征。

Visual C++ 仅当使用 /Za(标准一致性模式)标志进行编译时,才支持这些关键字。

#include <iso646.h>

它们被称为运算符同义词,它们显然是标准的一部分,但我不确定它们有多广泛支持。

你能在

顶部添加define s来绕过它吗?

#define and &&
#define or ||

要么是由编译器扩展引起的,要么是由源代码中其他地方的#define引起的,可能是因为iso646.h define or ||and &&。您可能还会看到类似使用 not 代替!的东西。

如果它是一个编译器扩展,并且您想避免必须通过并将所有orand更改为 ||&& ,只需在顶部添加一些您自己的#define

#define or ||
#define and &&