在C/C中利用宏实现代码的批量生成
我想在C/C中实现一个variadice宏,它可以作为一段代码展开。任何数量的参数都可以传递到宏中,宏将如以下示例展开:
#define DECLARE_LIST(...) // definition of the macro
DECLARE_LIST(a)
/* unrollig as
void funcA() {
declare(a);
}
void funcB() {
load(a);
}
*/
DECLARE_LIST(a, b, c)
/* unrollig as
void funcA() {
declare(a);
declare(b);
declare(c);
}
void funcB() {
load(a);
load(b);
load(c);
}
*/
DECLARE_LIST(a, b, c, d, ...) // for any number of macro parameter
字符串
2条答案
按热度按时间xuo3flqw1#
这将是C++使用可变参数模板的答案
字符串
这段代码将输出1,2,3,4,5(在新的行上)
3hvapo4f2#
这可能是一个C/C++答案(使用X macro):
字符串
我已经把函数名作为参数取出来了,但这不是必需的。