共用方式為


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 傳回型別。 和 argv envp 參數 wmain 也可以定義為 型別 char**。 如需自變數的詳細資訊,請參閱 自變數描述

備註

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

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

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

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

main 終止

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

另請參閱

main 函式和命令行自變數 (C++)
剖析 C 命令行自變數