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

C語言 main 函數返回類型:void main 與 int main 的差異

     編輯:C 語言問答

標準規範與編譯器實作的差異

C 標準(C99 起)明確規定 main 函數應返回 int,且僅允許兩種標準簽名:

int main(void);
int main(int argc, char *argv[]);

void main 的問題

  • 非標準:屬於編譯器擴展(如舊版 Turbo C、MSVC 早期版本支援)。
  • 行為未定義:作業系統期望進程返回退出碼,void main 可能導致隨機值傳回 Shell,腳本判斷失敗。
  • 可移植性差:嚴格模式(-pedantic、/Za)下會報錯。

int main 的優勢

  • 符合 ISO C / C++ 標準,所有標準編譯器皆支援。
  • 可明確返回退出碼:0 或 EXIT_SUCCESS 表示成功,非零表示失敗。
  • 便於腳本、CI/CD 流程判斷執行結果。

最佳實踐建議

#include <stdlib.h> // 提供 EXIT_SUCCESS, EXIT_FAILURE

int main(void)
{
    // 程式邏輯...
    return EXIT_SUCCESS; // 或 return 0;
}

即使不需處理命令列參數,也建議寫 int main(void) 而非 int main()(後者在 C 中代表參數未指定,C++ 則等同 void)。統一使用 int main 並以 return 0; 結尾,是最安全、最專業的寫法。

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