1

関数を呼び出したいのですが、この関数はいくつかの計算を行い、別の関数ポインターを返します。関数型ANSI Cを作成せずにそれは可能ですか? enumもしそうなら、どうすればその関数を宣言できますか?

4

1 に答える 1

0

おそらく、別の関数へのポインタを返したいでしょう。ポインターの構文はvoid (*myFuncPtr)(int)、myFuncPtr が変数名になるようなものです。ほとんどの場合、常に入力しないように typedef を作成したいと思うでしょう。最小限の例:

#include <stdio.h>

typedef int (*PUTS_PTR)(const char*);

PUTS_PTR ret_puts () {
    return puts;
}

int main () {
    PUTS_PTR pFunc = ret_puts();
    (*pFunc)("Hello");
}

pFunc("Hello")の代わりに同様に関数ポインタ呼び出しを書くこともできます(*pFunc)("Hello");。しかし、2 番目の構文では、ポインターの初期化またはチェックを忘れる可能性が低くなります。

于 2015-08-28T11:40:09.290 に答える