C/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)是(6)的另外写法,两种都可以,凭个人爱好。
(8)是一种很少用的写法,且受系统限制。
(9)一般不认为是正确的写法,但是在嵌入式系统中有使用(包括void main()形式)。


 

posted on 2013-04-01 12:17  梦轻寻  阅读(339)  评论(0编辑  收藏  举报

导航