関数のパラメータから関数ポインタを戻すことができません。 ここに私がしようとしているものの例があります。ネットを検索Cの関数引数から関数を取り出す方法は?
int a(int I)
{
return I*I;
}
void get_a(int(*R)(int))
{
R = &a;
}
int main()
{
int(*function)(int) = NULL;
printf("function a=%p\n", a);
get_a(function);
printf("function a=%p\n", &function); // Is never the right address.
return 0;
}
は、私が唯一のパラメータとして関数を渡すの例を見つけることができ、助けにはならなかったので、私はあきらめ、自分でこの問題を解決しようとしました。
これは、「関数の引数からintを取得する方法」と同じです。最初にその問題を解決すれば、この問題も理解できます。 –
あなたの関数get_a()は何もしません。なぜなら、それが行うのはローカル変数に割り当てられてから何も返さないからです。良いコンパイラはそれを完全に最適化するかもしれません。 –