如何在C/C++文件中測試/展開所有函數宏而不通過預處理器運行它? 例如,有一個程序或方法這將改變此:在沒有預處理器的情況下展開C/C++函數宏
#include <iostream>
#define AAA(a) cout << "function " << a << endl
using namespace std;
int main(){
AAA(12);
}
到這個?
#include <iostream>
using namespace std;
int main(){
cout << "function " << 12 << endl;
}
我不想通過預處理程序運行,因爲在文件中的所有包括使「GCC-E <>」輸出真難看,我只想沒有所有的開銷幾個簡單的宏展開。
你可能會寫一些使用clang作爲庫的代碼,並使用它的預處理器。除非'grep -v^\#include myfile | gcc -E'對你來說已經足夠了。 – 2015-03-08 22:16:01
Resharper for C++可以讓你做到這一點。 – chris 2015-03-08 22:19:26
感謝您的建議,我會考慮叮噹。但是,它將迭代超過33k +代碼行,所以我認爲grep會變得有點骯髒。我現在在Mac上,但我會跳到虛擬機上,給Resharper一個鏡頭。 – Involution 2015-03-08 22:23:18