2025年标准c语言程序的语句都以什么结尾,c程序的执行是从什么开始到什么结束?

标准c语言程序的语句都以什么结尾,c程序的执行是从什么开始到什么结束?C 程序的入口是 main 函数 一般来说只要是正常运行结束的都是从 main 函数的第一句话开始 最后一句结束 例如 int main 程序开始 printf Hello return 0 程序结束 返回值 但如果程序执行到中间遇到

大家好,我是讯享网,很高兴认识大家。

261a8bc08e7ad04c7ab8754c35a8fdca.png
讯享网

C程序的入口是main函数,一般来说只要是正常运行结束的都是从main函数的第一句话开始,最后一句结束。

例如:int main()//程序开始

{

printf("Hello!

");

return 0;//程序结束,返回值

}

但如果程序执行到中间遇到 return(main函数里的) exit(不管是main函数还是子函数中) 等也是会结束程序的。

C语言main函数的写法

main函数是C程序的入口函数,即程序的执行是从main函数开始,对其他函数的调动也是直接或间接地在main函数中被调用。那么main函数又是被谁调用呢?答案是操作系统。C语言发展至今,对main函数有多种不同的写法,下面就来探究一下各种不同的写法。注:测试环境为Ubuntu 17.10,GCC版本为7.2.0。

NO.1main(){}

例:#include

main(){

printf("Hello World

");

}

6588e9dca932bdabb78f3d88dfa55263.png

NO.2void main(){}

例:#include

void main(){

printf("Hello World

");

}

1740cb54004239428373f585ab3f6e38.png

NO.3int main(){}

例:#include

int main(){

printf("Hello World

");

return 0;

}

5c95149ad3d3172631d4f8f6514ca631.png

NO.4int main(void){}

例:#include

int main(void){

printf("Hello World

");

return 0;

}

c860bb9d56c6fdeb4dda69552989b10c.png

NO.5int main(int argc,char *argv[]){}

例:#include

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

printf("Hello World

");

return 0;

}

1e49b0b94e2ec8c4b177aa2c586f161e.png

NO.6int main(int argc,char argv){}

例:#include

int main(int argc,char argv){

printf("Hello World

");

return 0;

}

b20e50e60412ac006b536fe8e433ca68.png

从上面的测试来看,写法1在C90标准下可以正常编译,而在C99和C11标准下会抛出一个警告(不写返回值,默认的返回值为int,也就相当于写法1和写法3等价)。写法2-6在C90、C99、C11标准下均能正常编译。在这么多写法中,到底哪一些才是main函数的标准写法?于是查阅了C标准文档对main函数的规范写法,见下图:

d8b8240dd6e2eaf7ba67a5675e88eaad.png

从标准文档中可以看出,写法4、5、6才是main函数的规范写法。写法5与写法6是等价的。那为什么又会有写法1、2、3呢?那是因为从1972年C语言被设计出来到C90标准发布这段时间,对C语言不同的实现就导致了对main函数的差异性。强烈不推荐写法2,因为main函数是**作系统调用的,操作系统会根据main函数的返回值来判断程序的正确执行与否,如果返回void,那代表的是什么状态呢?而且一些编译器支持这种写法,一些编译器不支持,所有的标准并未认可这种写法。对于写法1和写法3还勉强能够接受,不过也不建议这样写,最好还是按照标准写法来写。为什么要按照标准写法来写?那是因为为了让C程序具有更好的移植性。写法5与写法6是等价的,第一个参数代表main函数参数的个数,第二个参数用指针分别指向这些参数。argv[0]代表程序名,argv[1]到argv[argc-1]代表程序参数。下面再看看main函数的返回值问题,见下图

7e3c8794aedcb5d63041edf889990d1b.png

从图中可以看出,如果main函数的返回值是int类型的兼容类型,从main函数返回后的值与exit一起相当于执行了exit xxx。xxx代表从main函数返回后的值。如果忘记写了return语句,当执行到main函数体的右大括号},会返回默认值0。返回0代表程序执行成功,程序退出。如果main函数的返回类型不是int类型的兼容类型,程序返回给操作系统的状态将会不明确。

C标准文档下载地址:

传送门:http://download.csdn.net/download/u0/

C标准简介:

传送门:http://blog.csdn.net/u0/article/details/

相关推荐:c语言教程视频

小讯
上一篇 2025-01-09 14:00
下一篇 2025-03-02 13:57

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/57501.html