- ベストアンサー
C言語のmain関数についての質問
- C言語のmain関数について質問させていただきます。
- 2000年度版と2007年度版のC言語入門書を比較すると、main関数の書き方が異なることがわかります。
- 両方のやり方でコンパイルするとエラーは起きませんが、どのような理由で変更されたのでしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
本当に「詳しい人」に聞きたいなら, こんなところに質問するのではなく出版社に問い合わせるべきではないかな. 著者自身がここを見てるかどうかわからないし, よしんば見て回答していたとしてもそれが本当に「著者の回答」なのか, 判断のしようもないでしょ? まず 1つ考えられるのが「お行儀」. 引数リストの void は「今の場合は」書かなくてもいい (書いてあるかどうかで意味の変わる場面は存在する) し, 返り値の型も「省略されていれば int」と推定するので書かなくてもいい. でも, いろいろ考えた結果「引数がないときには void と書く」とか「返り値の型は int であっても書く」とかしたんじゃないかな.... 手元にその本は (どっちの版も) ないので確認できないんだけど, 前の版で main の中に return 文はありますか? もう 1つ, 返り値の型を書くようになった理由としては C++ の絡みも考えられます. まあ今から勉強するならどちらも書かない理由はないわけですが.
その他の回答 (3)
- koi1234
- ベストアンサー率53% (1866/3459)
古い方といわれてるのは K&R で書かれた形式となります その当時さすがにK&Rってのはある意味ですさまじいので 新しい方は ANSI C 準拠に合わせて記載が変わったということではないかと思います 同一の例が以下に記載されています http://d.hatena.ne.jp/keyword/K%26R
お礼
ご回答、ありがとうございます。とても参考になりました。
- maiko0318
- ベストアンサー率21% (1483/6969)
はじめはvoid型なんてなかった。 関数は何らかの値を返す必要があった。 しかし、何も返す必要のない処理ばかり書いているうち、 void型が欲しくなって作られたのである。 ZEROの発明と同じですね。
お礼
ご回答、ありがとうございます。とても参考になりました。
- sora1515
- ベストアンサー率58% (54/92)
c言語 int main(void) でgoogle検索すると論議の歴史の長さが伺えます。c言語のキーワード外してもまた読み応えアリ。 void main()も含めたこちらが一番読み応えがありました。 http://okwave.jp/qa/q3185703.html c言語の幅広さと個々人の理想。「人生とは何か」と考えてしまいました・・ぉぃ
お礼
ご回答、ありがとうございます。とても参考になりました。
お礼
ご回答、ありがとうございます。とても参考になりました。