C-preprocesador definiendo para nombres de funciones generados
Tengo una situación en la que tengo bastantes funciones generadas y me gustaría señalarlas a algunas funciones genéricas que he creado (para permitirme reutilizar el código base cuando cambian los nombres de las funciones generadas).
Esencialmente, tengo una lista de nombres de funciones de la siguiente manera:
void Callback_SignalName1(void);
void Callback_SignalName2(void);
...etc
Una vez que se generen, me gustaría definir una macro para permitir que se los llame de forma genérica. Mi idea fue esta, pero no he tenido la suerte de implementarla ... como laC el preprocesador toma el nombre de la macro en lugar de lo que la macro se define como:
#define SIGNAL1 SignalName1
#define SIGNAL2 SignalName2
#define FUNCTION_NAME(signal) (void Callback_ ## signal ## (void))
...
...
FUNCTION_NAME(SIGNAL1)
{
..
return;
}
El problema es que recibo
void Callback_SIGNAL1(void)
en lugar de
void Callback_SignalName1(void)
¿Hay una buena manera de evitar esto?