全国服务热线:400-6136-679

位置:唐山达内IT教育培训机构 > 学校动态 > C语言 main 函数到底怎么写是对的

C语言 main 函数到底怎么写是对的

来源:唐山达内IT教育培训机构时间:2021/12/14 14:08:33

  各位,C语言中的main函数大家都再熟悉不过了,这是你学习C语言首先就要学习的东西,但是我看过很多人写的代码包括我们的一些读者在main函数的写法方面版本很多,今天就跟大家聊一聊main函数到底应该怎么写的问题。


C语言 main 函数到底怎么写是对的

  首先来看main函数的多种写法

  一、main( )

  这种写法没有返回值,没有参数。其实这种写法使用现在的编译器编译时会警告,但查了一下在C89标准中是可以的,而且由于函数没有显式声明返回类型那么编译器会将返回值默认为int的缘故,其返回值也为int。

  二、void main( )

  这种写法返回值为void,没有参数。我一直比较好奇这种样式是怎么来的,main函数的返回值要作为程序退出的状态,声明为void在程序退出后,退出情况就不得而知了。

  查了C89/C99/C11相关文档,都没有提到任何这种写法的痕迹,我见过较多的写法就是这种,不清楚为什么有这么多初学者这么写。严格来说返回值为void是不正确的。

  三、int main( )

  这种写法返回值为int,没有参数。这么写的人也不少,不过有一点要提醒一下大家:虽然声明没有参数,但是实际调用却可以传参,关于这个知识点就不多讲了,有疑问的可以留言我们私下交流。

  四、int main(void)

  这种写法返回值为int,参数为void。这是较常见的一种写法了。形参为void,表明它在调用的时候不能传入任何参数,那么它也就不能获取命令行参数了。

  五、int main(int argc,char *argv[])

  这种写法返回值为int,有两个参数,个入参为命令行参数个数,第二个入参为命令行参数数组。此种写法也比较常见,通常用于实现需要从命令行获取参数的功能。

  六、int main(int argc,char *argv[],char *envp[]

  这种写法返回值为int,有三个参数,分别为命令行参数个数,命令参数数组,环境变量数组。实际上它就比第五个多一个参数,用于获取环境变量,但全局变量environ可以代替envp的作用 ,因这种形式的存在也是比较尴尬,不太建议。

  到底应该使用哪种

  前面写了这么多,那到底哪种是对的呢?其实标准已经给出了这个问题的答案,C89/C99/C11标准文档中只提供了以下两种main函数的写法:

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

  至于上面说的其他的写法都是不符合标准的。当然如果你使用其他的写法,不同的编译器产生的结果是未定义的,但可以肯定的是常规的编译器对于以上两种标准的写法肯定是比较支持的。

  综上所述,为了代码的通用可移植性,建议采用标准提供的形式:不需要命令行参数可采用第四种,需要命令行参数采用第五种。大家还是要在标准规矩内行事,毕竟畏法度者较自由,写代码如此,其他方面也是如此,好了,就讲这么多吧。

  较后,达内C++培训机构提醒每一个it爱好者:如果你想要在短时间内入门,顺利掌握一门技术,建议还是认真学习视频。多练习,多动手。

领取试听课
每天限量名额,先到先得

尊重原创文章,转载请注明出处与链接:http://www.peixun360.com/3827/news/455081/违者必究! 以上就是唐山达内IT教育培训机构 小编为您整理 C语言 main 函数到底怎么写是对的的全部内容。

温馨提示:提交留言后老师会第一时间与您联系!热线电话:400-6136-679