重複の可能性:
main()はC / C ++で何を返す必要がありますか?
この関数はどのような値を返しますか。ただのメイン。
main()
{
...
}
関数に2つのメインがある場合、どうなりますか?
重複の可能性:
main()はC / C ++で何を返す必要がありますか?
この関数はどのような値を返しますか。ただのメイン。
main()
{
...
}
関数に2つのメインがある場合、どうなりますか?
この関数が返す値。
main
を返すものとして宣言する必要がありますint
。戻り値は呼び出し元 (通常はオペレーティング システム) に渡されます。
5.1.2.2.1プログラムの起動
プログラムの起動時に呼び出される関数は main と呼ばれます。実装は、この関数のプロトタイプを宣言していません。これは、戻り値の型が int で、パラメーターなしで定義されます。
int main(void) { /* ... */ }
または 2 つのパラメーター (ここでは argc および argv と呼ばれますが、宣言されている関数に対してローカルであるため、任意の名前を使用できます):
int main(int argc, char *argv[]) { /* ... */ }
関数に 2 つの mains がある場合はどうなりますか?
リンカがエラーを報告します。
C99/C11 では、ホスト環境で到達した場合にmain
戻ります。それ以外の場合、戻り値は未定義です。0
}
C11、§ 5.1.2.2.2 プログラムの実行
[...]関数
}
を終了するに到達するとmain
、値 0 が返されます。
C89 以前のコンパイラを使用していると仮定すると、
main()
{
...
}
戻りますint
。C99 以降のコンパイラを使用している場合は、エラーになります。
}
C99以降、明示的にリターンせずにエンディングに到達した場合main
、戻り値は0です。C89以前については不明です。
「関数には2つのメインがあります」が何を意味するのかわかりません。プログラムに 2 つの関数が定義されている場合、main
リンク時に重複定義エラーが発生する可能性が高くなります。