Есть ли способ расстегнуть строки, предоставляемые в качестве аргументов макроса? Мне нужно иметь возможность вызывать функции, имена которых в строках. Примерно так:
void hello() {
printf("Hello, world!");
}
call_func("hello");
Как бы я реализовал call_func. Он будет находиться в модуле #include
d и будет использоваться для вызова функций в главном файле c. Если есть другой способ сделать это, когда имя не должно быть в строках, но может быть передано в качестве аргумента функции, которая будет в порядке. Вот что я имею в виду:
#define call_func(X) X()
void do_something(Some_kind_of_C_func_type i) {
call_func(i)
}
void hello() {
printf("Hello, world!");
}
do_something(C_FUNC(hello));