重新定义(#define)保留的C++关键字

2024-02-12

是否可以使用 #define 重新定义 C++ 关键字?

#ifdef int
#undef int 
#define int 2
#endif
int main(){
    //Do something with int
}

在这种情况下我看不到输出,但我想了解内部发生的情况。我没有 #define 的原因是我发现如果不使用标准头文件,则可以 #define 保留关键字。我还尝试运行以下代码。

#include<iostream>
using namespace std;
#ifdef int
#undef int 
#endif
int main(){
    cout<<int;
}

但上面的 te 在 cout 行抛出错误。


是否可以?是的。款式好不好?绝对不。

预处理器不知道 C/C++ 关键字,它只知道预处理器标记,并且只执行严格的文本替换。

您的示例会导致错误,因为您是#undef荷兰国际集团它。一旦取消定义,它就会恢复到之前的行为。

我知道做这样的事情的唯一有效用途是解决旧编译器中的错误 https://stackoverflow.com/questions/984878/what-is-the-possible-use-for-define-for-if-false-else-for,而该编译器如今已不再相关。

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

重新定义(#define)保留的C++关键字 的相关文章

随机推荐

  • 为什么并行化会如此显着地降低性能?

    我有一个 OpenMP 程序 数千行 无法在这里重现 其工作原理如下 它由工作线程和任务队列组成 一个任务由一个卷积组成 每次工作线程从工作队列中弹出任务时 它都会执行所需的卷积 并可选择将更多卷积推送到队列中 没有特定的 主 线程 所有工
  • 使用 React Router 和 Redux Simple Router 进行 onEnter 转换不会渲染新路由的组件

    我有一个使用react 0 14 redux 3 05 react router 1 0 3 和 redux simple router 2 0 2 的应用程序 我正在尝试根据商店状态为我的一些路线配置 onEnter 转换 转换挂钩成功触
  • 一个视图中的两个模型模板 - Backbone/Marionette

    我试图在一个视图中使用两个模型 并使用这两个模型的模板 我正在和木偶一起工作 这是我对视图的初始化 main app layout header show new APP Views HeaderView model oneModel mo
  • 如何将信号从一个程序发送到另一个程序?

    我使用消息队列作为两个程序之间的 IPC 现在我想使用消息队列将数据从一个程序发送到另一个程序 然后通过信号 SIGINT 通知它 我不知道如何将信号从一个程序发送到另一个程序 如果有解决方案 任何人都可以提供示例代码吗 include
  • 我应该如何选择如何使用 R 进行打印? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 R 中有多种显示文本的方法 cat print write writeLines sink message 以及我现在不记得的其他替代
  • 为什么 XML 命名空间通常以 http://... 开头?

    例如 WPF 命名空间是 xmlns http schemas microsoft com winfx 2006 xaml presentation 如果我定义自己的命名空间 它也应该以http开头吗 不是http吗误导性的 命名空间的值没
  • 在方法参数中使用 NotNull 注解

    我刚刚开始使用 NotNull使用 Java 8 进行注释并得到一些意想不到的结果 我有一个这样的方法 public List
  • 自定义 django 管理模板不起作用

    我一直在尝试为 Django 工作的管理页面获取自定义模板 但没有成功 我已经阅读了 django 文档和几个博客 它们将其解释为一个如此简单的步骤 我认为这是如此 截至目前 管理页面可以工作 但我自己重写的 CSS 或模板不起作用 我的设
  • 每个优秀的 Java/Java EE 开发人员都应该能够回答的问题? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 无法重新分配$this?

    我的服务器上有一个 php 版本 4 的脚本 现在它已更改为 php5 并且该脚本不再起作用 我收到此错误 致命错误 无法在 URL database php 第 88 行中重新分配 this 该文件中有一个具有函数的类 里面是88行 th
  • 大稀疏矩阵到三角矩阵 R

    我在 R 中有一个非常大的 大约 9100 万个非零条目 sparseMatrix 如下所示 gt myMatrix a b c a 1 2 b 1 c 2 我想将其转换为三角矩阵 上或下 但是当我尝试 myMatrix myMatrix
  • Applescript 抓取 GIF 文件位置,将其复制到剪贴板,然后粘贴

    我正在尝试编写一个苹果脚本来定位 复制和粘贴图像文件 以下代码适用于jpegs and pngs set thePath to file location set the clipboard to read thePath as class
  • glibc/NPTL/Linux 稳健互斥体中的竞争条件?

    在对该问题的评论中在 Unix 崩溃时自动释放互斥锁 https stackoverflow com questions 4149266 automatically release mutex on crashes in unix rq 1
  • 从“NSDecimal”或“NSDecimalNumber”转换为 C# 的“decimal”类型

    我有一个NSDecimalNumber来自 StoreKit 的SKProduct类 我想将其转换为 C 的decimal类型以尽量减少精度损失 有没有直接的方法来做这样的事情 我想我的两个选择是 假设我了解每个的二进制实现并进行我自己的按
  • AngularJS 将数据传递给 $http.get 请求

    我有一个执行 http POST 请求的函数 代码如下 这很好用 http url user update path method POST data user id user id draft true 我有另一个 http GET 函数
  • webpack-dev-server 未重新加载

    我正在使用 webpack 5 目前有以下设置 webpack prod js 我有一些用于生产的特定配置 例如图像压缩 开发工具 CSS 缩小 特定元标记值 webpack dev js 我有一些用于开发的特定配置 例如 无图像压缩 无
  • 防止 CMake 查看库和包含的路径

    考虑下面的简单 CMake 脚本 试图找到一个虚构的theheader hC 头文件 据我所知 这是在目录中查找库的包含目录的典型方法FindXXX cmake模块 cmake minimum required VERSION 2 6 pr
  • 在meteor中,pub/sub可以用于任意内存对象(不是mongo集合)

    我想在我的流星应用程序中建立双向 双向 通信 但我需要在不使用 mongo 集合的情况下做到这一点 那么 pub sub 可以用于任意内存对象吗 有没有更好 更快或者更低级的方法 性能是我最关心的问题 Thanks 是的 pub sub 可
  • 在 PHP 中为 MySQL 表的每一行添加一个删除按钮

    我试图在每一行添加一个删除按钮 以便按下按钮时可以删除记录 我是 PHP MySQL 和 Stack Overflow 的新手 下面是我的表 它从我的 MySQL 数据库中提取信息并且有效 table class table tr th S
  • 重新定义(#define)保留的C++关键字

    是否可以使用 define 重新定义 C 关键字 ifdef int undef int define int 2 endif int main Do something with int 在这种情况下我看不到输出 但我想了解内部发生的情况