这是我用QtCreator制作的非常简单的C++应用程序:
int main(int argc, char *argv[])
{
int a = 1;
int b = 2;
if (a < 1 or b > 3)
{
return 1;
}
return 0;
}
对我来说,这并不是有效的C++代码,因为关键字or不是一个保留关键字。
但是,如果我编译并运行它,它可以正常工作,没有任何警告!退出代码为0,如果我改变b = 4,退出代码为1!
我没有包含任何内容来确保没有隐藏的定义。
这对我来说真的很奇怪。这是Qt正在定义的吗?我在文档中没有找到任何相关内容。
well spotted
”是指问题中的“为什么这段代码能编译?”:一些编译器需要#include <iso646.h>
,而有些则不需要。大多数(如果不是全部)集成开发环境不会突出显示这些新的“关键字”。 - Wolf