- ベストアンサー
どちらの説明をしているのかがわかりません?
http://okwave.jp/qa/q8798932.html の の中に int kansuu(int hikisuu); ←関数に引数を追加 がありますが! ”関数に引数を追加”の説明で、”関数”とは!intのことを言っているのか、それとも kansuuを言っているのかが分かりません? よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
元の 「ここでは、関数kansuuの定義とプロトタイプ宣言に 、引数を追加しました。 の意味は、関数 int kansuu( ) に、 引数 int hikisuu を 追加しました、 という意味だと思うのですが、単に、関数のプロトタイプを追加したということだと思います。 C言語は、基本的に 前方参照なので、関数、変数などを呼び出す前にそれらの定義文があるのが前提です。 一般的には、main() は、ソースコードの最後に置かれ、そこで呼び出す関数はmain()よりも前に記述するのが多いです。そうすれば基本的に前方参照になるので、プロトタイプ宣言をいちいち記述する手間が省けます。 何らか都合で、もしくは外部で定義される関数を呼び出す時は、プロトタイプ宣言を参照される前に記述します。 単なる定義文なので、呼び出し元と先で定義が間違っていなければ、コンパイル結果に影響は与えません。 呼び出し元と先の定義がもし間違っていると、コンパイルエラー(ワーニング)になるか、コンパイルが通ったとしても、間違った計算がなされるか、暴走するかいずれかでしょう。C言語の型宣言などの非常に重要なところです。 詳しくは、C言語、前方参照(前方宣言)などを参考書などで良く調べてみてください。
その他の回答 (1)
- lv4u
- ベストアンサー率27% (1862/6715)
ネットというか、このサイトで、こんな質問をする以前に、C言語の勉強をしましょうよ。 このサイトとかみてください。 http://wisdom.sakura.ne.jp/programming/c/c26.html
お礼
ご回答まことにありがとうございました。 私の質問内容ですが! 「int kansuu(int hikisuu); ←関数に引数を追加 で ”関数に引数を追加”の説明で、”関数”とは!intのことを言っているのか、それとも kansuuを言っているのか」 今回の質問は”温故知新”が足らなかったのですが!^^ ご質問した後に、参考書を調べてところ、intは型 とありました。 なのでkansuuが関数に当たるだと思います。 紹介していただいたhttp://wisdom.sakura.ne.jp/programming/c/c26.htmlですが^^ コンパイルの順番がわかりやすいように以下へ変更しました。 #include <stdio.h> void func2() { printf("(1)番目\n"); } void func1() { printf("(2)番目 "); func2(); } int main() { func1(); printf("(3)番目\n"); func1(); return 0; } 以下結果です。 (2)番目 (1)番目 (3)番目 (2)番目 (1)番目 通常であればプログラムは上から下へ流れているのですが! funcの配置の仕方で、prinftで出力される順番を任意に変えることができるのだと分かりました。 funcの意味と使い方で少しですが、理解できました。 質問したことを後で後悔したのですが、なにか、少しでも分かることで、プラスになったと思います。
お礼
ご回答まことにありがとうございました。 質問した内容がレベル的に低い内容でしたので”しまった”と思ったのですが! ご回答が、拡張されたご回答でしたので、何かと勉強になりました。 なので、 何か得るものはありました。 ご回答してくださった内容は私なりに吟味しましたが! まー私のレベルだと半分も理解するにも、まだまだ!ほど遠いレベルでした ハードルが高いですが、めげずに頑張れば、いつかは、花輪咲くでしょう。 ”前方宣言”を参考書数冊とネットで調べましたが、何となくわかるぐらいです。
補足
ご回答まことにありがとうございます。 せっかく、ご回答をくださったので、軽く流すのではなくて、しっかり読みたいと思います。 ご返事までには、しばらくお待ちくださいませ^^