C プログラムの入り口は main 関数であり、通常の動作が終了するまでは、main 関数の最初の文から始まり、最後の文で終わります。 。
例:
int main()//程序开始 { printf("Hello!\n"); return 0;//程序结束,返回值 }
ただし、プログラムが (メイン関数内で) return に遭遇した場合、(メイン関数内であってもサブ関数内であっても) プログラムの実行途中で終了します。 、番組も終了となります。
#C 言語での main 関数の書き方
main 関数は、C プログラムのエントリ関数です。つまり、プログラムの実行は main 関数を起点として、他の関数の呼び出しも main 関数内で直接的または間接的に呼び出されます。では、誰が main 関数を呼び出しているのでしょうか?答えはオペレーティング システムです。 C 言語の開発以来、main 関数の書き方にはさまざまな方法がありますが、 のさまざまな書き方を見てみましょう。注: テスト環境は Ubuntu 17.10、GCC バージョンは 7.2.0 です。
#NO.1main(){}
例:
#include ade979de5fc0e1ca0540f360a64c230b main(){ printf("Hello World\n"); }
NO.2##void main(){}
例:
#include ade979de5fc0e1ca0540f360a64c230b void main(){ printf("Hello World\n"); }
NO.3##int main(){}
例: #include ade979de5fc0e1ca0540f360a64c230b
int main(){
printf("Hello World\n");
return 0;
}
int main(void){}
例: #include ade979de5fc0e1ca0540f360a64c230b
int main(void){
printf("Hello World\n");
return 0;
}
# NO.5int main(int argc,char *argv[]){}
例: #include ade979de5fc0e1ca0540f360a64c230b
int main(int argc,char *argv[]){
printf("Hello World\n");
return 0;
}
NO .6
int main(int argc,char **argv){}
例: #include ade979de5fc0e1ca0540f360a64c230b
int main(int argc,char **argv){
printf("Hello World\n");
return 0;
}
上記のテストから、方法 1 を書くと次のようになります。 C90 標準では正常にコンパイルされますが、C99 および C11 標準では警告がスローされます (戻り値は書き込まれません。デフォルトの戻り値は int です。これは、メソッド 1 とメソッド 3 を記述するのと同等です)。書き方2~6はC90、C99、C11規格でも正常にコンパイルできます。たくさんの書き方がある中で、main関数の標準的な書き方はどれでしょうか?そこで、C 標準ドキュメントで main 関数の標準的な記述方法を確認しました。以下の図を参照してください。
## 標準ドキュメントから、次の記述が確認できます。メソッド 4、5、および 6 は、main 関数を記述する標準的な方法です。書き込み方法 5 は、書き込み方法 6 と同等です。では、なぜ1.2.3という書き方があるのでしょうか?それは、C 言語が 1972 年に設計されてから C90 標準がリリースされるまで、C 言語の実装の違いにより main 関数に違いが生じたためです。方法 2 の書き方は、main 関数は OS によって呼び出されるため、強く推奨されません。OS は、main 関数の戻り値に基づいて、プログラムが正しく実行されたかどうかを判断します。 void が返された場合、それはどのような状態を表しますか?また、この書き方をサポートしているコンパイラもあれば、サポートしていないコンパイラもあり、すべての規格がこの書き方を認識しているわけではありません。書き方 1 と 3 はまだギリギリ許容範囲ですが、推奨されませんので、標準的な書き方に準じて書くのがベストです。なぜ標準的な書き方に従って書く必要があるのでしょうか?それは、C プログラムの移植性を高めるためです。書き方 5 は、書き方 6 と同じです。最初のパラメータは main 関数のパラメータの数を表し、2 番目のパラメータはポインタを使用してこれらのパラメータをそれぞれ指します。 argv[0]はプログラム名を表し、argv[1]からargv[argc-1]はプログラムパラメータを表します。 main 関数の戻り値を見てみましょう。下の図を参照してください。
図より、main 関数の戻り値が int 型の互換型の場合、main 関数から exit とともに返される値は exit xxx を実行したことと同等であることがわかります。 xxx は main 関数から返される値を表します。 return 文を書き忘れた場合、メイン関数本体の閉じ括弧 } が実行されると、デフォルト値 0 が返されます。 0 を返すことは、プログラムの実行が成功し、プログラムが終了することを意味します。 main 関数の戻り値の型が int 型と互換性のない型である場合、プログラムがオペレーティング システムに返すステータスは不明瞭になります。
C 標準ドキュメントのダウンロード アドレス:
ポータル: http://download.csdn.net/download/u012219371/10184521
C 標準の概要:
ポータル: http://blog.csdn.net/u012219371/article/details/78951972
関連する推奨事項: C 言語チュートリアル ビデオ
以上がC プログラムの実行はどこで開始され、どこで終了するのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。