私はユーザーレベルのスレッドライブラリの作成に取り組んでおり、スタブ内で関数を実行したいので、関数ポインターをスタブ関数に渡したいと思います。
ここに私のスタブ関数があります:
void _ut_function_stub(void (*f)(void), int id)
{
(*f)();
DeleteThread(id);
}
これは、ユーザーが呼び出すものです。私がやりたいのは、_ut_function_stub のポインターを取得してpcに割り当てることです。キャストを含むさまざまなオプションを試しましたが、コンパイラーは「void 式の無効な使用」と言い続けます。
int CreateThread (void (*f) (void), int weight)
{
... more code
pc = (address_t)(_ut_function_stub(f, tcb->id));
... more code
}
どんな助けでも大歓迎です。ありがとう!