C中MAIN函數
ANSI-C(C89/C99)的話main()函數有2種主要形式。
(1) int main(void)
(2) int main(int argc, char *argv[])
(2)也可寫成int main(int argc, char **argv)
argv[argc]放空指針(NULL指針)。
argc和argv可以用別名。
另外,還有一種受系統限制的形式:
int main(int argc, char *argv[], char *envp[])
前兩個參數同(2),第三個參數envp[]放環境變量。
這個形式很少用。
所以嚴格講,
ANSI-C推薦的帶參數的main()函數只有上面(2)這一種。
另外,蒐集了一下C和C++中常見的幾種形式:
(1) main()
(2) int main()
(3) int main(void)
(4) int main(int, char**)
(5) int main(int, char*[])
(6) int main(int argc, char **argv)
(7) int main(int argc, char *argv[])
(8) int main( int argc, char *argv[], char *envp[])
(9) void main(void)
(1)是(3)的簡寫。不推薦使用。
(2)是(3)的簡寫。在C++中是正確的形式。
(3)在C和C++中都是正確的形式。推薦使用。(還有缺省int的main(void)形式)。
(4)和(5)是不用參數時的一種寫法。編譯器級別高時會警告。不推薦使用。
(6)是(7)的另外寫法。兩種都可以,憑個人愛好。
(7)是帶參數的正確的形式。推薦使用。
(8)是一種很少用的寫法,且受系統限制。
(9)一般不認爲是正確的寫法。但是在嵌入式系統中有使用(包括void main()形式)。
(1) int main(void)
(2) int main(int argc, char *argv[])
(2)也可寫成int main(int argc, char **argv)
argv[argc]放空指針(NULL指針)。
argc和argv可以用別名。
另外,還有一種受系統限制的形式:
int main(int argc, char *argv[], char *envp[])
前兩個參數同(2),第三個參數envp[]放環境變量。
這個形式很少用。
所以嚴格講,
ANSI-C推薦的帶參數的main()函數只有上面(2)這一種。
另外,蒐集了一下C和C++中常見的幾種形式:
(1) main()
(2) int main()
(3) int main(void)
(4) int main(int, char**)
(5) int main(int, char*[])
(6) int main(int argc, char **argv)
(7) int main(int argc, char *argv[])
(8) int main( int argc, char *argv[], char *envp[])
(9) void main(void)
(1)是(3)的簡寫。不推薦使用。
(2)是(3)的簡寫。在C++中是正確的形式。
(3)在C和C++中都是正確的形式。推薦使用。(還有缺省int的main(void)形式)。
(4)和(5)是不用參數時的一種寫法。編譯器級別高時會警告。不推薦使用。
(6)是(7)的另外寫法。兩種都可以,憑個人愛好。
(7)是帶參數的正確的形式。推薦使用。
(8)是一種很少用的寫法,且受系統限制。
(9)一般不認爲是正確的寫法。但是在嵌入式系統中有使用(包括void main()形式)。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.