ページ 11

main()関数の終了について

Posted: 2008年12月06日(土) 16:49
by cuser
終了コードを持たせるプログラムのとき
main()関数の終了はどのようにしていますか?

1.関数の型を int として return で終了する。
2.関数の型を int として exit() 関数で終了する。
3.関数の型を void として exit()関数で終了する。
4.その他

「一般的な方法である」、「慣例である」、「安全面を考えて」、
「公の機関で推奨されている、またははっきりと定義されている」など
そうしている理由も知りたいです。

Re:main()関数の終了について

Posted: 2008年12月06日(土) 17:49
by ibis
私は1ですね。
理由は、exitが必要な機会があまり無い、といったところでしょうか。
C++に慣れてるのもありますし。

ちなみにC++ではexitは良くないんですよ。
exitでは終了の際にデストラクタ(オブジェクトの解体をする関数)が呼び出されないのがその理由で、
この場合はthrowかreturnを使います。

Re:main()関数の終了について

Posted: 2008年12月06日(土) 17:52
by 初級者
規格上、1番だと思います。

Re:main()関数の終了について

Posted: 2008年12月07日(日) 00:44
by たかぎ
私は1.か4.ですね。
ちなみに4.は、「返却型をintとし、return文を省略する」です。
C99やC++では、mainのreturn文を省略した場合、最後にreturn 0;を記述したのと同じになります。

Re:main()関数の終了について

Posted: 2008年12月13日(土) 16:46
by cuser
ありがとうございます。利用させていただきます。