我正在尝试编写一个程序,其中一些函数的名称取决于某个宏变量的值,这个宏是这样的:
#define VARIABLE 3
#define NAME(fun) fun ## _ ## VARIABLE
int NAME(some_function)(int a);
不幸的是,宏 NAME()
将其转换为
int some_function_VARIABLE(int a);
而不是
int some_function_3(int a);
所以这样做显然是错误的。幸运的是,VARIABLE 的不同可能值的数量很少,所以我可以简单地做一个 #if VARIABLE == n
并分别列出所有的情况,但是有没有一种聪明的方法来做到这一点呢?