标签: c++ c macros c-preprocessor
我在代码审查中注意到以下代码:
for (int i = 0; i < 50; ++i) { switch(i) { case 0: return f1(); case 1: return f2(); ... case 49: return f50(); } }
我想知道是否有任何优雅的方法,例如使用宏来简化此代码(减少到几行):
谢谢。
答案 0 :(得分:0)
没有任何CPP宏可以生成此宏,但是在C或C ++中通常的做法是生成带有其他内容的东西。例如,您可以用Python,Ocaml或AWK编写一些生成代码的脚本,而这样做是很常见的做法(您只需在Makefile中添加几行即可)。而且,您还可以使用其他预处理器,例如m4或gpp。
Makefile
顺便说一句,在您的情况下,您可以考虑声明一个包含50个指针函数的数组,然后间接调用它们。