ここから本文です

回答受付中のQ&A

C言語のプログラミング問題だれか教えてください><

adgjadgj17さん

C言語のプログラミング問題だれか教えてください><

以下の関数を呼び出すmain関数を記述しろという問題です。試行錯誤しましたがコンパイルすら通りません。
main文で②の関数から返ってくる値を受け取る変数ってvoid (**x)();は違いますか?
②の行は何がなんだかわかりません。
どなたか取り敢えず②の行が何をしているか教えてください。。。><


void hoge(void) {
printf("hoge\n");
}

void (*a(void))(void){ //①
printf("a\n");
return hoge;
}

void (*(*b(void))(void))(void){ //②
printf("b\n");
return a;
}

void (*(*(*c(void))(void))(void))(void){ //③
printf ("c\n");
return b;
}

  • 質問日時:
    2014/5/5 16:18:57
  • 残り時間:
    7日間
  • 閲覧数:
    43
    回答数:
    2
  • お礼:
    知恵コイン
    25枚

この質問に回答する

回答

(2件中1〜2件)

並べ替え:回答日時の
新しい順
古い順

 

pyon_naniwa2001さん

>以下の関数を呼び出すmain関数を記述しろという問題です。
int main(void)
{
hoge();
a();
b();
c();
return 0;
}

foobar7979さん

「関数ポインタ」を学んでください。
http://www.c-lang.org/pointer_function.html

少しは理解できたら、typedef を使って①②③を
置換してってみれば、なんとなく見えてくると思います。

P.S.
さっきの http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1312861474...
と同じ人でしょ?
同じことです。 typedef で1歩ずつ自力置換してけば。

  • 違反報告
  • 編集日時:2014/5/5 16:30:36
  • 回答日時:2014/5/5 16:23:08

この質問に回答する

Q&Aをキーワードで検索:

PR

総合Q&Aランキング

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。

お得情報

期間限定!5月6日までの応募で
プレミアムドッグフード「ユーカヌバ」
サンプル1.0kgが試せるチャンス!

その他のキャンペーン

知恵コレに追加する

閉じる

知恵コレクションをするID/ニックネームを選択し、「追加する」ボタンを押してください。
※知恵コレクションに追加された質問や知恵ノートは選択されたID/ニックネームのMy知恵袋で確認できます。

ほかのID/ニックネームで利用登録する