Preprocesor C określający generowane nazwy funkcji
Mam sytuację, w której mam kilka wygenerowanych funkcji i chciałbym wskazać im pewne ogólne funkcje, które stworzyłem (aby umożliwić mi ponowne użycie kodu podstawowego, gdy zmienione zostaną wygenerowane nazwy funkcji).
Zasadniczo mam listę nazw funkcji w następujący sposób:
void Callback_SignalName1(void);
void Callback_SignalName2(void);
...etc
Po ich wygenerowaniu chciałbym zdefiniować makro, aby umożliwić im wywoływanie generycznie. Mój pomysł był taki, ale nie miałem szczęścia go wdrożyć ... jakoC preprocesor przyjmuje nazwę makra zamiast tego, co makro jest zdefiniowane jako:
#define SIGNAL1 SignalName1
#define SIGNAL2 SignalName2
#define FUNCTION_NAME(signal) (void Callback_ ## signal ## (void))
...
...
FUNCTION_NAME(SIGNAL1)
{
..
return;
}
Problem polega na tym, że otrzymuję
void Callback_SIGNAL1(void)
zamiast
void Callback_SignalName1(void)
Czy jest dobry sposób na to?