C標準は言う:
プログラムの起動時に呼び出される関数の名前はmainです。実装は、この関数のプロトタイプを宣言していません。これは、intの戻り型で、パラメーターなしで定義されるものとします。
int main(void) { /* ... */ }
または2つのパラメーターを使用します(ここではargcおよびargvと呼びますが、宣言されている関数に対してローカルであるため、任意の名前を使用できます)。
int main(int argc, char *argv[]) { /* ... */ }
または同等のもの、またはその他の実装定義の方法。
ただし、Kernighan&Ritchieの第2版(正規のANSI C)の聖書では、次のものを使用しています。
main()
{
/* taram pampam ... */
return 0;
}
誰が正しいですか?int
戻り値が自動的にCで返されると想定されていない関数と関係がありますか?