或者不是有效的 C++:为什么这段代码可以编译?

2023-12-28

这是我用 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 定义的东西吗?我在文档中没有找到任何与此相关的内容。


根据维基百科 http://en.wikipedia.org/wiki/C%2B%2B_operators#C.2B.2B_operator_synonyms:

C++ 定义关键字作为别名 对于许多功能的符号 作为运算符:and (&&)、bitand (&)、 and_eq (&=)、or (||)、bitor (|)、or_eq (|=)、异或 (^)、xor_eq (^=)、非 (!)、 not_eq (!=)、compl (~)。

As MadKeithV 指出 https://stackoverflow.com/questions/1433345/or-is-not-valid-c-why-does-this-code-compile/1433393#1433393,这些替换来自 C 的 iso646.h,并作为运算符关键字包含在 ISO C++ 中。 iso646.h 的维基百科文章表示,这些关键字的原因确实是针对国际键盘和其他非 QWERTY 键盘,这些键盘可能无法轻松访问这些符号。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

或者不是有效的 C++:为什么这段代码可以编译? 的相关文章

随机推荐

  • 如何获取 PowerShell 字符串中最后一次出现的字符的索引?

    我想从 PowerShell 中的以下字符串获取最后一个 出现的索引 以便修剪 Activity 单词并保留它 string C cmb Trops TAX Auto Activity 我正在将代码从 VBScript 转换为 PowerS
  • 从 IEnumerable 中的任意点访问一系列元素

    我有这个方法 private IEnumerable
  • Laravel Jobs 不允许序列化“Closure”

    我想将数据发送到 NewsletterStore 作业 但它因以下错误而失败 有什么建议么 我还尝试删除 SerializesModels Models 特征 没有任何成功 Error Exception Serialization of
  • 如何在 Julia 中逐行读取文件?

    如何打开文本文件并逐行读取它 我对两种不同情况的答案感兴趣 一次获取数组中的所有行 一次处理每一行 对于第二种情况 我不想一次将所有行保留在内存中 将文件作为行数组一次性读入内存只需调用readlines功能 julia gt words
  • ASP.NET Core MVC 2.0 中基于路径的身份验证

    在 ASP NET Core MVC 1 1 中 我们有基于路径的身份验证 如下所示 public void Configure IApplicationBuilder app IHostingEnvironment env ILogger
  • 为什么 git-for-each-ref 无法正确排序标签?

    当我有一个包含轻量级标签和带注释标签的存储库时 git for each ref似乎只对其中一组进行排序 我想修改我的通话for each ref获得对所有标签进行排序并将它们混合在输出中的输出 例如 bash 3 2 git tag gt
  • C 反转字符串函数得到奇怪的输出

    我试图理解指针并制作一个反向字符串函数 code include
  • 批量:将txt文件中的文件复制到一个文件夹中

    我正在尝试创建一个批处理文件 将文本文件中列出的多个文件复制到新文件夹中 我发现了几个与此相关的线程 但我仍然无法使批处理正常工作 我遇到的问题是txt中列出的文件都位于不同的源位置并且具有不同的扩展名 例如 该列表如下 C Users F
  • CSS边距重叠而不是给出距离[重复]

    这个问题在这里已经有答案了 最近我遇到了边距问题 但我无法解决它 我的 HTML 看起来像这样 div class info box Some text div div class form div CSS info box border
  • 从 Linux 调试 Windows 内核

    我曾经使用调试 Windows 内核虚拟KD WinDBG和一个虚拟机 最近我得到了一台Linux机器 现在我想知道当你的主机无法运行时调试Windows内核的最简单方法是什么虚拟KD WinDBG 我假设该解决方案需要两个虚拟机 但我宁愿
  • Apache Camel 与 IBM MQ

    大家好 有谁曾经将 Camel 与 IBM 的 MQ 一起使用过吗 我们正在考虑将这两种产品一起使用的可能性 但没有这两种产品一起工作的示例 我广泛使用 IBM MQ 和 Camel 两者一起使用没有问题 我将从我的一个 Spring 上下
  • vtk.vtkRender() 导致段错误:11

    我有一个 python 脚本 它不是我编写的 它利用了 vtk 模块 它可以在我的旧 iMac 和 Linux 机器上运行 在安装了 OS X Mavericks 的 Macbook Pro 上尝试时 我在渲染过程中遇到了段错误 我已经追踪
  • 从我的笔记本电脑连接到 AWS MSK Kafka:NoBrokersAvailable

    我在连接到 AWS MSK Kafka 时遇到问题 使用 with访问控制方式配置为None 从我的笔记本电脑 错误是 没有可用的经纪人 我在用纯文本通过端口连接9092 from kafka import KafkaProducer ka
  • 如何检测三星互联网浏览器的深色模式?

    如果可以检测到这一点 是否有可能通过 CSS 类或 JavaScript 影响颜色 使用深色阅读器扩展 还可以提交调整 如果没有其他办法可以改变的话 希望这里也是可能的 三星互联网确实有颜色的奇怪的东西 https www ctrl blo
  • Django Rest 框架:如果未对可浏览 API 进行身份验证,则进行重定向

    我不确定如果用户不满足权限标准 如何实现重定向登录 正如文档所述 在运行视图主体之前 会检查列表中的每个权限 所以视图中的重写方法是没有结果的 如果有人能指出我正确的方向吗 谢谢 Django Rest Framework 是一个用于构建
  • 散景字形坐标与 x_axis_type 'datetime'

    我正在尝试将一个简单的文本字符串 字形 添加到使用的散景图中x axis type datetime 我的代码 精简到其要点 如下 p figure plot width 900 plot height 380 x axis type da
  • 反应酶测试库

    我是反应测试库的新手 我热衷于使用酶 当我浏览文档时 我发现 create react app 允许直接包含第三方测试库 我尝试了以下方法来添加酶 但没有成功 这是我尝试过的 但它在我的 app test js 中不起作用 import R
  • Scrapy:如何调试scrapy丢失的请求

    我有一个 scrapy 蜘蛛 但有时它不返回请求 我发现通过在产生请求之前和获得响应之后添加日志消息 Spider 可以迭代页面并解析每个页面上的项目废弃的链接 这是代码的一部分 SampleSpider BaseSpider def pa
  • 如何在java中使用中文和日文字符作为字符串?

    Hi我正在使用java语言 在此我必须使用一些中文 日文字符作为字符串并使用 System out println 进行打印 我怎样才能做到这一点 Thanks Java Strings支持Unicode 所以中文和日文都没问题 不过 其他
  • 或者不是有效的 C++:为什么这段代码可以编译?

    这是我用 QtCreator 制作的一个非常简单的 C 应用程序 int main int argc char argv int a 1 int b 2 if a lt 1 or b gt 3 return 1 return 0 对我来说