サイトアイコン ツナのエンジニアブログ

色々なmain()関数

main()関数の表記

入門書やサイトを見比べるとmain()関数の表記が少しずつ違っていたりします。

初心者にはどれが正しいのか判断できませんよね。

結論から言うとこれらはどれも正解です。
入門レベルのプログラムを書く場合、どれで書いても大差はありません。お好きな表記で記述して結構です。

なので、そこまで重要な内容ではありませんが、パターン別にどういうときに使うべきか解説します。

関数の表記についてはこちら。
https://tunasalmon.com/2016/07/18/%e9%96%a2%e6%95%b0/

パターン別のmain()関数の用途

void main(void)


これが一番簡潔なパターンでしょう。
他のパターンの用途に当てはまらなければこれを使って問題ありません。
()の中のvoidは省略可能です。

int main(void)


戻り値の型がvoidでないパターンです。あまり見ませんがint以外にもfloatでもcharでも同じです。
この場合戻り値を指定するためreturn文が必要になります。

main()関数における戻り値は計算結果などのデータとしての値ではなく、処理の終了時のステータスを表すために使います。
例えば、0なら正常終了。これは普段使っているものですね。他には1や-1で異常終了などがあります。
ユーザー定義関数やその他のライブラリの関数でもよくある使い方なので覚えておくと良いでしょう。

つまり、終了時の状態をチェックする必要がある時や複数の状態に分岐する場合に使います。

int main(int argc, char *argv[])


引数がつくパターンです。
main()関数に引数をつけて実行したいときに使います。
これはコマンドライン引数で詳しく解説しています。
https://tunasalmon.com/2017/08/28/%e3%82%b3%e3%83%9e%e3%83%b3%e3%83%89%e3%83%a9%e3%82%a4%e3%83%b3%e5%ae%9f%e8%a1%8c/
戻り値はintになっていますがvoidでも使えます。



(adsbygoogle = window.adsbygoogle || []).push({});

モバイルバージョンを終了