我该如何在不通过预处理器的情况下测试/扩展C/C++文件中的所有函数宏?例如,是否有一种程序或方法可以更改以下内容:
#include <iostream>
#define AAA(a) cout << "function " << a << endl
using namespace std;
int main(){
AAA(12);
}
将此转换为HTML代码?
#include <iostream>
using namespace std;
int main(){
cout << "function " << 12 << endl;
}
我不想运行预处理器,因为文件中的所有包含使得“gcc -E <>”输出非常丑陋,我只想要一些简单的宏展开而没有所有的开销。
grep -v ^\#include myfile|gcc -E
已经足够好用了。 - Mats Petersson#include
前加上// {unique tag}
,然后通过普通的预处理器运行它,最后再删除// {unique tag}
就可以了。 - MSalters-C
选项时会保留注释。 - MSalters