是否可以让gnucpp保留include宏
Is it possible to let gnu cpp preserve include macro?
我正在使用gnu cpp
进行一些测试,希望它能保留#include宏,同时扩展其他用户定义的宏。有可能吗?下面是一段代码(foo.c):
#include <stdio.h>
#define NEWLINE(str) str "n"
int main(){
puts(NEWLINE("foo"));
}
我希望cpp foo.c
的结果是:
#include <stdio.h>
int main(){
puts("foon");
}
您可以使用脚本注释掉每个#include,运行cpp,然后删除这些注释。
如果我理解正确,您希望使用预处理器只预处理某些部分,而不预处理其他部分。这通常是不可能的。唯一的方法是向源添加条件,即在要展开的零件周围使用例如#ifdef
和#endif
,并在命令行上将define传递给预处理器。
不,这是不可能的。然而,行信息通常在预处理器输出中以#
开头的行中可用。
你可以使用一些其他的预处理器,比如gpp
相关文章:
- 有根的二进制搜索树.保留与其父级的链接
- 既然存在危险,为什么项目要使用-I include开关
- 为多个会话保留XPtr
- 有充分的理由在h文件中使用include保护而不是cpp文件吗
- 如何将更多文件夹添加到c++include路径
- 什么是"#include <boost/functional/hash.hpp> "?
- 保留对其他类的成员函数的引用
- 对于MacOS上的G++,如何添加默认的include目录/usr/local/include和默认的库搜索路径/usr
- 指针保留字符串
- C++包含来自 #include "DevEngine/Core.h" 的错误
- 是否有内置方法可以强制转换为不同的基础类型,但保留常量限定符?
- <filesystem> 在 clang 6 和 10 上 #include 错误
- 如何让 GCC/Clang 在保留标识符上出错
- 在 void 函数中使用 #include 变量C++
- 必须为 C++20 协程帧保留多少内存?
- 如何将一个窗口保留在另一个应用程序窗口的前面
- 使用 char 分隔符解析C++中的字符串,但将可重复的字符保留为每个解析的子字符串 (C++ STL) 中的分隔符
- N-API include an .so or dll
- 是否可以让gnucpp保留include宏
- cmake-glob-include同时保留目录结构