タグ付けされた質問 「entry-point」

11
main()は本当にC ++プログラムの始まりですか?
C ++標準のセクション$ 3.6.1 / 1は、 プログラムには、プログラムの指定された開始点であるmainと呼ばれるグローバル関数が含まれます。 今、このコードを考えて、 int square(int i) { return i*i; } int user_main() { for ( int i = 0 ; i < 10 ; ++i ) std::cout << square(i) << endl; return 0; } int main_ret= user_main(); int main() { return main_ret; } このサンプルコードは、私が意図することを実行します。つまり、プログラムの「開始」であるはずの関数に入る前に、0から9の整数の2乗を出力しますmain()。 また-pedantic、GCC 4.5.0オプションでコンパイルしました。エラーも警告もありません! …

9
「int main」です。有効なC / C ++プログラム?
私のコンパイラはそうではないのに、コンパイラがそう思っているように見えるので、私は尋ねます。 echo 'int main;' | cc -x c - -Wall echo 'int main;' | c++ -x c++ - -Wall Clangはこれに関する警告やエラーを発行せず、gccは微妙な警告のみを発行します'main' is usually a function [-Wmain]が、Cとしてコンパイルされた場合のみ-std=です。aの指定は重要ではないようです。 それ以外の場合は、コンパイルして正常にリンクします。しかし、実行すると、SIGBUS(私にとっては)ですぐに終了します。 CとC ++でmain()が何を返す必要があるか(優れた)回答を読む そして、言語仕様をざっと見てみると、メインの機能が必要なように思えます。しかし、gcc ( 'main'は通常は関数です)からの言い回し(およびここでのエラーの不足)は、おそらく別のことを示唆しているようです。-Wmain しかし、なぜ?これには、奇妙なエッジケースまたは「歴史的」な使用がありますか?誰が何を与えるか知っていますか? 私のポイントは、おそらく、これはホストされた環境ではエラーになるはずだと私は本当に思っているということです。
113 c++  c  function  main  entry-point 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.