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

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

     編輯:程式設計疑難解答

標準規定

C/C++ 國際標準(ISO C99/C11, C++98/11/14/17/20)強制要求 main 返回 int:

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

返回值含義

  • return 0; 或 return EXIT_SUCCESS;:程序正常結束。
  • 非零值:異常退出代碼,供腳本、父進程、操作系統判斷執行狀態。

void main() / float main() 為何能通過某些編譯器?

  • 屬于編譯器擴展(如舊版 MSVC、Borland C++),為兼容歷史代碼而保留。
  • 進入點啟動代碼(CRT)會忽略返回值或強制轉換,導致行為未定義。
  • 不可移植:換編譯器/平台即報錯或異常。

主函數內部可否使用 int 變量?

完全可以。返回類型與函數體內局部變量類型無關。int main() 內部可任意定義 float、double、結構體等變量。

最佳實踐

始終編寫標準 int main(),最后 return 0;。若需向系統返回浮點狀態,請在程序內部處理后轉換為整數代碼返回。

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