マクロ引数として提供された文字列を文字列化解除する方法はありますか? 名前が文字列になっている関数を呼び出せるようにする必要があります。このようなもの:
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));