Определение препроцессора C для сгенерированных имен функций

У меня есть ситуация, когда у меня довольно много сгенерированных функций, и я хотел бы указать им на некоторые общие функции, которые я создал (чтобы я мог повторно использовать базовый код при изменении имен сгенерированных функций).

По сути, у меня есть список имен функций следующим образом:

void Callback_SignalName1(void);
void Callback_SignalName2(void);
...etc

После того, как они сгенерированы, я хотел бы определить макрос, чтобы позволить им вызываться в общем. Моя идея была такая, но у меня нетНе повезло, что это было реализовано ... как C препроцессор берет имя макроса вместо того, что макрос определяется как:

#define SIGNAL1 SignalName1
#define SIGNAL2 SignalName2

#define FUNCTION_NAME(signal) (void  Callback_ ## signal ## (void))
...
...
FUNCTION_NAME(SIGNAL1)
{
  ..
  return;
}

Проблема в том, что я получаю

void Callback_SIGNAL1(void)

вместо

void Callback_SignalName1(void)

Есть ли хороший способ обойти это?

Ответы на вопрос(1)

Ваш ответ на вопрос