是否可以使用#define更改#include文件名
Is it possible to alter #include filenames using #define?
我正在使用一些旧的C++代码,这些代码显然早于标准化,并从iostream.h
移动到iostream
,对于其他包含也是如此。因此,我相对现代的g++版本在尝试#include <iostream.h>
等时失败了
我很好奇是否可以使用预处理器通过命令行将iostream.h
的实例更改为仅iostream
。我尝试过将-Diostream.h=iostream
附加到g++,但这似乎并没有改变include语句。
我猜预处理器不可能修改include语句?
#include
语句有三种形式。
# include "h-char-sequence" new-line
# include <h-char-sequence> new-line
# include pp-tokens new-line
其中CCD_ 8必须扩展到前两种形式之一。
您可以使用:
#include IOSTREAM
并使用-DIOSTREAM="<iostream>"
或-DIOSTREAM="<iostream.h>"
进行编译,具体取决于使用的编译器版本。
但是,你不能使用
#include <iostream.h>
并用CCD_ 11进行编译。
这有几个问题。
iostream.h
不是有效的预处理器宏#include
语句的形式不适合进行宏扩展
如果您准备迁移代码库以使用新的C++标头,那么最好使用您最喜欢的脚本方法将所有旧式C++标头更改为新的C++标题。
相关文章:
- 从命令行c++发送文本文件名
- 如何在OMNET++中指定与命令行参数组合的输出文件名
- 既然存在危险,为什么项目要使用-I include开关
- 有充分的理由在h文件中使用include保护而不是cpp文件吗
- 如何将更多文件夹添加到c++include路径
- 什么是"#include <boost/functional/hash.hpp> "?
- 为什么文件名被设置为一个点,而不是在读取矢量中的文件名时
- 对于MacOS上的G++,如何添加默认的include目录/usr/local/include和默认的库搜索路径/usr
- 当Microsoft文档仅包含 C# 示例时,如何查找 C++ 包含文件名
- C++包含来自 #include "DevEngine/Core.h" 的错误
- <filesystem> 在 clang 6 和 10 上 #include 错误
- 在 void 函数中使用 #include 变量C++
- 如何在CPP的给定目录中列出UTF编码的文件名?
- 在Visual Studio 2019中保存时ReadDirectoryChangesW文件名的问题
- C++:在Windows中浏览名称中带有点的文件名
- N-API include an .so or dll
- 更改 #include 文件名以匹配大小写
- #include 指令中文件名的有效字符
- 是否可以使用#define更改#include文件名
- C++ #include <[文件名]>但 #include <string> 不是文件名