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 語言所定義。 您也可以將 和 char** argv
envp
宣告 argv
為 char** envp
。 本節稍後的範例將說明如何使用這三個參數存取命令列引數。 下列各節會說明這些參數。
如果您的程式碼遵守 Unicode 程式設計模型,您可以使用 Microsoft 特定的寬字元版本 main
, wmain
作為程式進入點。 如需這個寬字元版本 main
的詳細資訊,請參閱使用 wmain
。
main
終止
程式通常會在從 傳回或到達 結尾 main
時停止執行,但可能會因為各種原因而終止程式的其他點。 例如,您可能會想要在偵測到某些錯誤狀況時強制終止程式。 若要這樣做,您可以使用 函 exit
式。 如需和使用方式範例的詳細資訊 exit
,請參閱 exit
。
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應