5

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

約1時間前に基本的なJavaコーディングを数か月行った後、Cのコーディングを開始しましたが、基本的なhelloworldプログラムのコンパイルで問題が発生しています。

これが私のコードです:

#include < stdio.h>

void main()
{
    printf("\nHello World\n");
}

これは、コンパイルしようとしたときに返されるものです。

 Hello.c: In function ‘main’:
 Hello.c:13: warning: return type of ‘main’ is not ‘int’

どんな助けでも大いに感謝されるでしょう、ありがとう!

4

4 に答える 4

5

の標準シグネチャmainは次のいずれかです。

int main(void)

また

int main(int argc, char **argv)

コンパイラは単に標準を強制しています。

実装は をサポートするvoid main()場合がありますが、明示的に文書化する必要があることに注意してください。そうでない場合、動作は未定義です。dandan78 が言うように、多数の書籍やオンライン リファレンスがこれを誤解しています。

于 2013-01-31T21:57:01.713 に答える
4

そのはず

int main() {}

次にreturn 0、プログラムが正しく終了しているかどうか、またはエラーが発生した場合は他の番号を使用する必要があります。これはUnixの規則であるため、スクリプトはプログラムが正しく終了したか、エラーが発生したかを確認できます。

于 2013-01-31T21:51:26.900 に答える
2

cのmain-functionはintを返す必要があります:

#include < stdio.h>

int main()
{
  printf("\nHello World\n");
  return 0;
}
于 2013-01-31T21:51:50.277 に答える
-2

どのプロトタイプを選択するかに関係なく、main()戻り値を。にすることはできませんvoid。それはでなければなりませんint。多くの本やチュートリアルはこれを間違え、一部のコンパイラは文句を言う傾向がありますが、他のコンパイラは文句を言いません。

于 2013-01-31T21:51:39.983 に答える