我正在研究一个非常糟糕的代码库。为了给你一个想法,这里是他们如何做循环:
#define loop(v,m) for(int v = 0; v < int(m); ++v)
这无处不在。它变得更糟:
#define loopi(m) loop(i, m)
#define loopj(m) loop(j, m)
#define loopk(m) loop(k, m)
#define loopl(m) loop(l, m)
#define looprev(v, m) for (int v = int(m); --v >= 0;)
#define loopirev(m) looprev(i, m)
#define loopjrev(m) looprev(j, m)
#define loopkrev(m) looprev(k, m)
#define looplrev(m) looprev(l, m)
我已经尝试过Eclipse的宏扩展重构工具,但它崩溃了。有没有可以帮助我的工具?这只是像这样的数百个宏中的一个。
答案 0 :(得分:1)
我不知道有任何使用Eclipse CDT自动执行此操作的内置方法。
你可能会编写一个Eclipse插件来自动化它,虽然如果手动调用“探索宏扩展”(我假设你在你的问题中提到的那个)崩溃,那么你的插件可能会遇到同样的崩溃。无论如何,我都建议filing a bug关于那次崩溃。
您还可以查看其他工具,例如clang-expand。