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?

Respuestas a la pregunta(1)

Su respuesta a la pregunta