C言語を習い始めてから、1ヶ月も経っていないんですが、長いプログラム(1万行くらい)の読解という課題が出ました。
読解を円滑に進めていくためのコツとして、「関数の大まかな呼び出し関係」を調べればよい、と学びました。
そこで質問させてもらいたいのですが、「関数の呼び出し関係を調べる」とは、具体的にどういうことなんでしょうか?関数が関数を呼び出しているんですか??
もうひとつC言語について質問です。
今回与えられたプログラムは1万行くらいあるのですが、そのうちmain関数は50行くらいしかありません。
これって、残り9950行はすべて、main関数の動作のためにあるんですか??
以上、初歩的な質問かもしれませんが、ご指導願います。
No.2ベストアンサー
- 回答日時:
> 「関数の呼び出し関係を調べる」とは、具体的にどういうことなんでしょうか?
main関数から別の関数を呼び出して、そこからまた別の関数を呼び出して、というように、関数の呼び出し経路を樹形図のように書いてみれば、分かりやすくなるということです。
> 関数が関数を呼び出しているんですか??
はい、そうです。
> 今回与えられたプログラムは1万行くらいあるのですが、そのうちmain関数は50行くらいしかありません。
> これって、残り9950行はすべて、main関数の動作のためにあるんですか??
どんなプログラムかにもよりますが、概ねそう考えてよいでしょう。そうでないケースを説明すると混乱するだけなのでやめておきます。
初心者は手作業で呼び出し関係を調べた方がよいのですが、自分で調べた結果の答え合わせにDoxygenを使うと便利です。
http://www.doxygen.jp/
DoxyfileでCALL_GRAPHとHAVE_DOTをYESに設定すれば、関数の呼び出し関係の図が自動生成されます。(Doxygenの他にGraphvizをインストールするのをお忘れなく)
http://www.doxygen.jp/config.html#cfg_call_graph
No.1
- 回答日時:
>関数が関数を呼び出しているんですか??
そうです、main が関数 hoge() と fuge() を呼んで、さらに hoge() が関数 boke() と poke() を呼んで。。。という関係を調べて、
おおまか(main側)から枝葉末節(呼出している関数が標準ライブラリのみ)の方向に調べるのが基本です。
>そのうちmain関数は50行くらいしかありません。
普通です。正常なプログラマであれば、長々と main ブロックを書いたりしません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# スタックフレームの消滅 6 2023/05/20 12:33
- Excel(エクセル) Indirect関数について、Formulatextで抽出した数式を参照したい。 1 2022/12/15 11:16
- C言語・C++・C# C言語のwhileを含む関数について 2 2022/12/16 12:28
- C言語・C++・C# C言語初心者 ポインタについて、お助けください、、 2 2023/03/15 23:50
- その他(プログラミング・Web制作) FORTRAN77の配列(除算) 2 2023/02/01 14:34
- C言語・C++・C# 至急教えてください! プログラミングの問題です! お願いします! 出力2と全く同じ出力をするように、 2 2022/06/22 23:10
- 大学・短大 C言語線形リストの問題です 3 2022/12/22 00:45
- 経済学 「政府支出乗算」の求め方を教えてください。 2 2022/11/20 19:52
- 日本語 呼び方を知りたい ある事柄(A)についての本を読んでいて、全く本筋とは異なるが、気になる情報(B)が 5 2023/08/24 22:13
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UNIX環境でのCプログラム上でC...
-
VBS:コンピュータ名を取得し、...
-
会社のプログラムがわからず毎...
-
C/C++でチャットソフトを作りた...
-
DLLってなに?
-
C++で何ができるのでしょうか?
-
プログラミング言語の覚え方習得法
-
現在プログラミングの研修中な...
-
ASPとASP.NET両方の...
-
VB.net エラーメッセージを英文...
-
SNMPトラップ情報をC#.netで作...
-
API、OCX、DLLって何でしょう?
-
printf系の書式「w」ってなに?
-
英検準1級と基本情報処理技術者...
-
あいのり風のメッセージビデオ...
-
CSV内のhtmlタグを文字のママ表...
-
全豊田作業責任者
-
1年無職の彼氏 別れるべきですか?
-
機械工学専攻の院卒でSEになる...
-
VBで簡単なゲームをつくるサイト
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
API、OCX、DLLって何でしょう?
-
VBプログラムをEXCEL VBAに移植...
-
C言語のHP-UXからLinuxへのポ...
-
UNIX環境でのCプログラム上でC...
-
VBS:コンピュータ名を取得し、...
-
SNMPトラップ情報をC#.netで作...
-
現在プログラミングの研修中な...
-
VB.net エラーメッセージを英文...
-
Cプログラムの解析(関数の呼び...
-
OSとCPUの関係について
-
コンソールアプリでファイル選...
-
出欠表のプログラム制作の難易...
-
プログラムとは理系ですか文系...
-
CoInitializeSecurityが失敗する
-
Ryzen 3700(無印)はWin11に対応...
-
VC++で単機能ブラウザを作...
-
EXCEL-VBAのプログラムを移植し...
-
C#のプログラムを読むコツって...
-
Perl5とActivePerl
-
ニンテンドーDS用、自作プロ...
おすすめ情報