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
,它會將執行控件傳遞至函式,讓執行會在函式的第一個語句開始。 函式會在執行語句或到達函式結尾時,傳回 控件main
return
。
您可以宣告任何函式,包括 main
,以具有參數。 詞彙「參數」或「型式參數」是指接收傳遞給函式之值的識別項。 如需將引數傳遞給參數的相關資訊,請參閱參數。 當某個函式呼叫另一個函式時,被呼叫的函式會從呼叫函式收到其參數的值。 這些值稱為引數。 您可以宣告正式參數, main
使其可以使用函式簽章中顯示的格式,從命令行接收自變數。
當您想要將資訊傳遞至 main
函式時,參數傳統上會命名 argc
為 和 argv
,不過 C 編譯程式不需要這些名稱。 傳統上,如果第三個參數傳遞至 main
,該參數就會命名為 envp
。 、 argv
和 envp
的類型argc
是由 C 語言所定義。 您也可以將 與宣告 argv
為 char** argv
envp
char** envp
。 本節稍後的範例將說明如何使用這三個參數存取命令列引數。 下列各節會說明這些參數。
如果您的程式代碼遵守 Unicode 程式設計模型,您可以使用 Microsoft 特定寬字元版本的main
wmain
、 作為程式的進入點。 如需這個寬字元版本 main
的詳細資訊,請參閱 使用 wmain
。
main
終止
程式通常會在從 傳回 或 到達 結尾 main
時停止執行,但可能會因為各種原因而終止於程式中的其他點。 例如,偵測到某些錯誤狀況時,您可能會想要強制終止程式。 若要這樣做,您可以使用 函式 exit
。 如需使用 exit
方式和範例的詳細資訊,請參閱 exit
。