您现在的位置是:群英 > 开发技术 > 编程语言
C语言中main函数的写法有哪些,区别在哪?
Admin发表于 2021-12-21 17:49:36585 次浏览

    这篇文章我们来了解C语言中main函数的内容,main函数在C语言中是很重要的,有接触过C语言编程的朋友应该都知道要先些main函数。而在C语言学习中,我们能看到main函数的写法有很多,那么这些不同的写法区别在哪?怎样写才是正确的呢?下面我们一起分析了解看看。

1、main()

    直接的mian()并没有返回值,没有入参。这种写法实际来说,部分编译器会显示警告,并且会返回默认值为int。不过在C89标准中其实是可以的,由于没有声明返回类型,所以才会返回默认值int

2、void main()

    初学者经常会使用的形式,但是并不知道来源在哪,在C89/C99/C11等文档中都没有提到这种形式的痕迹。这种写法的返回值是void,没有参数。值得注意的是,一旦声明是void,在程序退出后,想要获取其退出状态也就不可以了。所以还是不建议返回值为void的。

3、int main(void)

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

4、int main ()

    和上面第3种看起来好像没啥区别,但是还是有些许不同。就下面例子来说:

#include<stdio.h>
void test();
int main()
{
test(4);
return 0;
}
void test(int a)
{
printf("%d",a);
}

    程序仍然可以正常运行,test函数虽然声明为无入参,但调用时却是可以传入任何参数或不传参数的。

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

    int argc入参为命令行参数个数,char *argv[]入参为命令行参数数组。这种写法也比较常见的,主要用在需要从命令行获取参数的功能。int main(int argc,char *argv[],char *envp[])包含三个参数的一种写法,上面第5种的升级版,int argc是命令行参数个数,char *argv[]是命令参数数组,char *envp[]是环境变量数组。虽然只比第六种多了一个参数,但全局变量environ可以代替envp的作用,获取或者设置环境变量可以使用getenvputenv,因此也没有必要使用该形式。这种写法多源于编译器的扩展。上面写了这么多种写法,那么到底写哪种才算是对的?查阅C89/C99/C11标准文档,

    里面明确固定了两种写法:

  • int main(void) { /* ... */ }
  • int main(int argc, char *argv[]) { /* ... */ }

    所以说,其他的写法并不符合标准,有些算是历史遗留有些算是编译器的扩展,还有些不知道从哪里生出来的。
    所以说了这么多,为了代码的通用可移植性,建议采用标准提供的形式,还是推荐使用标准文档中规定的这两种写法。如果一个函数确定无需传入任何参数,那么用void限定是一个不错的选择。

    关于C语言中main函数的内容就介绍到这,现在大家对正确的main函数写法应该都清楚了吧,大家在编程时候一定要注意。最后,想要了解更多C语言的内容,大家可以关注其它的相关文章。

文本转载自脚本之家

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

标签: c语言main函数
相关信息推荐
2022-05-07 17:30:10 
摘要:在PHP中,bcsub()函数用于从另一个函数中减去一个任意精度数,该函数接受两个任意精度的数字作为字符串,并在将结果缩放到指定的精度后返回两个数字的减法,语法为“bcsub($num_str1,$num_str2,$scaleVal)”。
2022-05-12 11:17:50 
摘要:这篇文章主要介绍了PHP 内置WEB服务器的简单使用,帮助大家更好的理解和学习使用PHP,感兴趣的朋友可以了解下
2021-12-30 20:34:56 
摘要:这篇文章给大家分享的是Jetty的相关内容,对于新手来说,可能不是很了解Jetty是什么,对此本文就给大家来详细的介绍一下Jetty的特性以及用法,对大家了解和学习Jetty的使用都有帮助,那么感兴趣的朋友接下来一起跟随小编看看吧。
推荐内容
热门关键词
热门信息
群英网络助力开启安全的云计算之旅
立即注册,领取新人大礼包
  • 联系我们
  • 24小时售后:4006784567
  • 24小时TEL :0668-2555666
  • 售前咨询TEL:400-678-4567

  • 官方微信

    官方微信
Copyright  ©  QY  Network  Company  Ltd. All  Rights  Reserved. 2003-2019  群英网络  版权所有   茂名市群英网络有限公司
增值电信经营许可证 : B1.B2-20140078   粤ICP备09006778号
免费拨打  400-678-4567
免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
微信公众号
返回顶部
返回顶部 返回顶部