首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

C++ main 函數返回類型規範:為何 int main() 是標準而 void main() 不是?

     編輯:程式設計疑難解答

標準規定

C++ 國際標準(ISO C++98 至 C++20)強制要求 main 返回 int:

int main() { ... }
int main(int argc, char* argv[]) { ... }

void main() 的問題

  • 屬于編譯器擴展(如 MSVC、Borland 早期版本),非標準,不可移植。
  • 啟動代碼(CRT)期望從 main 獲取 int 返回值傳給操作系統,void 導致未定義行為(返回隨機垃圾值)。
  • 某些嵌入式編譯器允許 void main(),但標準建議仍用 int main() 并 return 0;。

返回值用途

  • 0 / EXIT_SUCCESS:正常結束。
  • 非零:錯誤代碼,供 Shell 腳本、父進程、CI 系統判斷構建成敗。

常見誤區澄清

「輸出函數在主函數裡,是以浮點型數據輸出的,這個返回值是在屏幕上顯示的。」 —— 錯誤。main 返回值不顯示在屏幕上,而是傳遞給調用進程(如 cmd、bash、父進程)。屏幕輸出由 printf/cout 等函數產生。

最佳實踐

始終編寫 int main() { ... return 0; },確保跨平台、跨編譯器行為一致。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved