回答受付中のQ&A
C言語のプログラミング問題だれか教えてください><
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件)
- 並べ替え:回答日時の
- 新しい順
- |
- 古い順
>以下の関数を呼び出すmain関数を記述しろという問題です。
int main(void)
{
hoge();
a();
b();
c();
return 0;
}
- 違反報告
- 回答日時:2014/5/5 16:33:29
「関数ポインタ」を学んでください。
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