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

C 語言 main 函數標準寫法全解析:從 C89 到 C99 的演進與最佳實踐

     編輯:關於C語言

C 語言 main 函數標準寫法全解析:從 C89 到 C99 的演進與最佳實踐

main 是 C 程序的入口點,其聲明格式直接影響程序的標準合規性、可移植性與啟動參數獲取能力。本文系統梳理五種常見寫法的優劣與適用場景。

五種寫法詳解與推薦等級

寫法推薦指數標準合規性參數支持說明
int main(int argc, char *argv[])★★★★★C89/C99/C11完整命令行參數標準完整形式,argc 為參數個數,argv[0] 為程序名
int main(void)★★★★★C89/C99/C11無參數標準無參形式,明確語義,推薦無參程序使用
int main()★★★☆☆C89 允許,C99 不推薦無參數(隱式)隱式無參,C99 要求編譯器至少給出警告
main()★☆☆☆☆C89 兼容,C99 需警告無參數,隱式返回 int早期 C 只有 int 類型,現代標準強烈不推薦
void main()☆☆☆☆☆非標準無參數,無返回值C/C++ 標準從未定義,僅部分編譯器(如 VC6)為兼容而支持,移植性極差

返回值的意義與處理

  • return 0; 表示程序正常退出,返回值傳遞給操作系統(Shell 中 echo $? 可查看)。
  • C99 規定:若 main 末尾無 return,編譯器應隱式插入 return 0;。但 VC6 不插入,C-Free MinGW 插入 return 1;,行為不一致。
  • 最佳實踐:始終顯式寫 return 0;,確保行為確定、符合標準。

命令行參數實例

執行 ./program arg1 arg2 時:

argc = 3
argv[0] = "./program"
argv[1] = "arg1"
argv[2] = "arg2"

總結建議

  1. 有參數需求 → int main(int argc, char *argv[])
  2. 無參數需求 → int main(void)
  3. 拒絕 void main()、裸 main()、隱式 int main()
  4. 始終顯式 return 0;

遵循標準寫法,是編寫高質量、可移植 C 代碼的基石。

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