ANSI-C(C89/C99)的話main()函數(shù)有2種主要形式。
(1) int main(void) (2) int main(int argc, char *argv[]) (2)也可寫成int main(int argc, char **argv) argv[argc]放空指針(NULL指針)。 argc和argv可以用別名。 另外,還有一種受系統(tǒng)限制的形式: int main(int argc, char *argv[], char *envp[]) 前兩個(gè)參數(shù)同(2),第三個(gè)參數(shù)envp[]放環(huán)境變量。 這個(gè)形式很少用。 所以嚴(yán)格講, ANSI-C推薦的帶參數(shù)的main()函數(shù)只有上面(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)是不用參數(shù)時(shí)的一種寫法。編譯器級(jí)別高時(shí)會(huì)警告。不推薦使用。 (6)是(7)的另外寫法。兩種都可以,憑個(gè)人愛好。 (7)是帶參數(shù)的正確的形式。推薦使用。 (8)是一種很少用的寫法,且受系統(tǒng)限制。 (9)一般不認(rèn)為是正確的寫法。但是在嵌入式系統(tǒng)中有使用(包括void main()形式)。 |
|