double (*foo)(double);
C のコードで上のように宣言されたとき,foo は何を表していますか?

プログラミング初心者です.
よろしくお願いします.

A 回答 (1件)

関数ポインタですね。


状態変数等によって呼び出し関数を変える時に、関数ポインタのテーブルを引っ張ってきて呼び出したりすることがあります。

double (*foo[])(double) = {func1, func2, func3};

とかあった場合
int idx = 1;
double param = 1.1;
double ret;
ret = (*foo[idx])(param);

とすれば

ret = func2(param);

とするのと同じことです。
    • good
    • 0
この回答へのお礼

少し調べて理解しました。関数のポインタですか・・想像できませんでした。
素早いご返答ありがとうございます。

お礼日時:2010/10/22 22:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qプログラムの関数の例でよく使われるfoo

fooの語源ってなんですか?
hogeの専門ページはあったんですがfooが見つかりません。

Aベストアンサー

Jargon File に詳しい解説があります。

http://www.tf.hut.fi/cgi-bin/jargon?search=foo

RFC も発行されています。

http://www.faqs.org/rfcs/rfc3092.html

Fucked Up Beyond All Repair はコジツケだそうです。


人気Q&Aランキング

おすすめ情報