Я пытаюсь написать программу, где имена некоторых функций зависят от значения определенной макропеременной с макросом вроде этого:
#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
и перечислить все случаи отдельно, но мне было интересно, есть ли у него разумный способ сделать это.