» ちょっとコラム : main関数の正しい定義
main関数は、本文で紹介したように
int main(int argc, char *argv[])
と定義するのが正当です。また、引数を省略して
int main(void)
としても構いません。
親プロセスに対して終了コードを返さない場合、main関数の戻り値を無視するという意味で
void main(void)
のような定義も可能です。しかし、多くのコンパイラではこのようなソースをコンパイルした場合に警告のメッセージが表示されます。main関数の戻り値としてint型の値が期待されているからです。
もちろん、警告を無視してコンパイルしたものを実行しても、大きな影響はありません。プログラムは問題なく実行されるでしょう。
しかし、警告が出るのは何だかすっきりしません。main関数の定義を
int main(void)
のようにして、main関数の最後で
return (0);
と、正常終了を意味する「0」を返すようにした方が無難です。