-9

重複の可能性:
main()はC / C ++で何を返す必要がありますか?

この関数はどのような値を返しますか。ただのメイン。

main()
{
...
}

関数に2つのメインがある場合、どうなりますか?

4

3 に答える 3

4

この関数が返す値。

mainを返すものとして宣言する必要がありますint。戻り値は呼び出し元 (通常はオペレーティング システム) に渡されます。

5.1.2.2.1プログラムの起動

プログラムの起動時に呼び出される関数は main と呼ばれます。実装は、この関数のプロトタイプを宣言していません。これは、戻り値の型が int で、パラメーターなしで定義されます。

int main(void) { /* ... */ }

または 2 つのパラメーター (ここでは argc および argv と呼ばれますが、宣言されている関数に対してローカルであるため、任意の名前を使用できます):

int main(int argc, char *argv[]) { /* ... */ }

関数に 2 つの mains がある場合はどうなりますか?

リンカがエラーを報告します。

于 2012-10-18T17:01:34.200 に答える
1

C99/C11 では、ホスト環境で到達した場合にmain戻ります。それ以外の場合、戻り値は未定義です。0}

C11、§ 5.1.2.2.2 プログラムの実行

[...]関数}を終了するに到達するとmain、値 0 が返されます。

于 2012-10-18T17:03:05.930 に答える
0

C89 以前のコンパイラを使用していると仮定すると、

main()
{
  ...
}

戻りますint。C99 以降のコンパイラを使用している場合は、エラーになります。

}C99以降、明示的にリターンせずにエンディングに到達した場合main、戻り値は0です。C89以前については不明です。

「関数には2つのメインがあります」が何を意味するのかわかりません。プログラムに 2 つの関数が定義されている場合、mainリンク時に重複定義エラーが発生する可能性が高くなります。

于 2012-10-18T19:39:40.110 に答える