0

関数ポインタでこの関数を呼び出す方法は?

    double a(double *a){
    return *a;
}

私はこれを試しますが、運が悪い:

double (*p)(*double) = &a;

それらの目的に適したチュートリアルがあまり見つかりませんでした。良いリンクを参照してください。

4

2 に答える 2

4

このような:

double (*p)(double*) = &a;

ご覧のとおり、関数ポインターの型の関数シグネチャは、実際の関数宣言とまったく同じ方法で記述されています (引数名は必要ありません)。

于 2012-08-13T10:25:42.397 に答える
0

わずかに変更されたため、すべてが呼び出されるわけではありませんa:

double deref(double *a)
{
    return *a;
}

double test()
{
    double (*deref_pointer)(double*) = deref;

    double value = 3.14;

    return deref_pointer(&value);
}
于 2012-08-13T10:28:37.850 に答える