共用方式為


main 函式和程式執行

每個 C 程式都有一個必須命名為 的主要函式 main 。 函 main 式可作為程式執行的起點。 它通常會透過直接呼叫程式中的其他函式,以控制程式的執行。

數個限制適用于 main 不適用於任何其他 C 函式的函式。 main 函式:

  • 無法宣告為 inline
  • 無法宣告為 static
  • 無法取得其位址。
  • 無法從程式呼叫。

函式 main 簽章

main 式沒有宣告,因為它內建在語言中。 如果這麼做,的 main 宣告語法看起來會像這樣:

int main( void );
int main( int argc, char *argv[ ] );
int main( int argc, char *argv[ ], char *envp[ ] );

main 式是使用下列其中一個簽章隱含宣告。 當您定義函 main 式時,您可以使用其中任何一個簽章。 當未傳回任何值時,Microsoft 編譯器也允許 main 具有 的傳回型 void 別。 的 argvenvp 參數 wmain 也可以定義為 型別 char** 。 如需引數的詳細資訊,請參閱 引數描述

備註

原始程式中的函式會執行一個或多個特定工作。 函 main 式可以呼叫這些函式來執行各自的工作。 呼叫另一個函式時 main ,它會將執行控制項傳遞至函式,以便從函式中的第一個語句開始執行。 函式會在執行 語句或到達函式結尾時,傳回 控制項 mainreturn

您可以宣告任何函式,包括 main ,以擁有參數。 詞彙「參數」或「型式參數」是指接收傳遞給函式之值的識別項。 如需將引數傳遞給參數的相關資訊,請參閱參數。 當某個函式呼叫另一個函式時,被呼叫的函式會從呼叫函式收到其參數的值。 這些值稱為 引數。 您可以宣告正式參數 main ,使其可以使用函式簽章中顯示的格式,從命令列接收引數。

當您想要將資訊傳遞至函式時 main ,參數傳統上會命名為 argcargv ,雖然 C 編譯器不需要這些名稱。 傳統上,如果將第三個參數傳遞至 main ,該參數會命名為 envp 。 、 argvenvp 的類型 argc 是由 C 語言所定義。 您也可以將 和 char** argvenvp 宣告 argvchar** envp 。 本節稍後的範例將說明如何使用這三個參數存取命令列引數。 下列各節會說明這些參數。

如果您的程式碼遵守 Unicode 程式設計模型,您可以使用 Microsoft 特定的寬字元版本 mainwmain 作為程式進入點。 如需這個寬字元版本 main 的詳細資訊,請參閱使用 wmain

main 終止

程式通常會在從 傳回或到達 結尾 main 時停止執行,但可能會因為各種原因而終止程式的其他點。 例如,您可能會想要在偵測到某些錯誤狀況時強制終止程式。 若要這樣做,您可以使用 函 exit 式。 如需和使用方式範例的詳細資訊 exit ,請參閱 exit

另請參閱

main 函式和命令列引數 (C++)
剖析 C 命令列引數