7 c macros variadic-functions c-preprocessor
我想让C预处理器为我生成宏(即,我只使用C99).我写了一个宏
#define make_macro(in) <...magic here...>
Run Code Online (Sandbox Code Playgroud)
当我放
make_macro(name1)
make_macro(name2)
Run Code Online (Sandbox Code Playgroud)
稍后在代码中,它将扩展为
#define name1(...) name1_fn(name1_info, __VA_ARGS__)
#define name2(...) name2_fn(name2_info, __VA_ARGS__)
Run Code Online (Sandbox Code Playgroud)
然后我就可以使用name1和name2作为(宏实现的)函数.我认为我在两个步骤中都使用了宏:使用宏来重复填充模板是有意义的,并且除了通过宏之外,可变参数处理将不起作用.
那么什么进入<......魔法......>占位符来做到这一点?在这一点上,我开始相信它在C99中是不可能的,但也许我错过了语法的一些细节.