How can I concatenate twice with the C preprocessor and expand a macro as in “arg ## _ ## MACRO”?

Standard C Preprocessor $ cat xx.c #define VARIABLE 3 #define PASTER(x,y) x ## _ ## y #define EVALUATOR(x,y) PASTER(x,y) #define NAME(fun) EVALUATOR(fun, VARIABLE) extern void NAME(mine)(char *x); $ gcc -E xx.c # 1 “xx.c” # 1 “<built-in>” # 1 “<command-line>” # 1 “xx.c” extern void mine_3(char *x); $ Two levels of indirection In a comment … Read more