这是因为:有些初始化代码,会在main()函数启动前运行,这个启动代码会调用我们编写的main()函数,所以其它函数可以任意编写,main()的格式是固定的,是我们自己编写的代码,我们自己的程序启动的地方,通常也是我们自己的程序结束的地方。
main()程序或者整个程序(若干人编写的)运行的起点,C这整个系统除了自己编写的部分外,还有一部分,是编译系统定义的。自己编写的部分,从main()函数启动运行一般来说,也在main()函数里结束。这种情况是正常的,而且没有错误的,程序运行情况。通常我们并不是从头编写整个程序(比如汇编那样,把一切掌握在自己手中)
所以,系统为了简化我们编程,对一些硬件相关的,操作系统相关的,还有一些是编译器相关的代码,写在库里,其中有些初始化代码,会在main()函数启动前运行,这个启动代码会调用我们编写的main()函数,所以其它函数可以任意编写,main()的格式是固定的,是我们自己编写的代码,我们自己的程序启动的地方,通常也是我们自己的程序结束的地方。
计算机其实在同一瞬间只能执行同时执行一条命令,看起来程序有那么多功能、那么多代码,其实计算机cpu执行起来是按优先级顺序执行的,并不能同时执行两条或者多条命令,所以给计算机写的程序必须要有一定的规则和顺序,main函数是c语言程序的入口地址,有且只有一个,如果多个main函数的程序存在,计算机执行之后要么是后面的main函数的地址将前面的覆盖掉,到最后只行政一个入口地址,要么若多入口程序真的存在..计算机是不会自己做出选择的,,所以..会死机吧..或者随机执行个入口了…
这样的话写程序就违反了自己写程序的初衷。
延伸阅读:
什么是main()函数?
main函数,又称主函数,是程序执行的起点,main是相对来说的,如同音学理论之主调于泛音,泛音即程序中的除main之外的其他函数,迎合人们的思考方式而生成的而非必定的模式。有主有次,执行起来条清缕析,既可将程序模块化又实现了一个闭合的整体。
程序执行总是从main函数开始,如果有有其他函数,则完成对其他函数的调用后再返回到主函数,最后由main函数结束整个程序。在执行程序时,由系统调用main函数。main 函数是在程序启动中完成对具有静态存储期的非局部对象的初始化之后被调用的。它是程序在有宿主 (hosted)环境(亦即有操作系统)中所指定的入口点。自立程序(启动加载器,操作系统内核,等等)的入口点则是由实现定义的。
开发者生产力工具大全:
从人工到自动化,从重复到创新,技术演进的历程中,都伴随着开发者工具类产品的发展,所以这里整理近几年口碑良好,使用广泛的22款程序员生产力工具。
1.研发项目管理与协作:PingCode
优点:让工作推进、进度/问题追踪、团队协作变得更简单,2021年研发项目管理榜单TOP1(36Kr)。
简介:覆盖研发全生命周期,广泛用于需求、版本、项目(敏捷/kanban/瀑布)、测试、缺陷、文档、效能等环节管理与协作。并且集成github、gitlab、jinkens等主流工具,支持私有部署、在线等多种部署使用方式。
【教程/官网】
2.任务管理/甘特图制作工具:Worktile
优点:功能成熟、性价比高、国内市场占有率最高的团队任务工具;
简介:在功能上Worktile 是一个工具集合,它具备OKR目标管理、项目管理、项目集管理、项目计划、项目风险、项目成本管理、企业网盘、审批、简报等能力。并且具备强大的自定义能力,能够配置出符合各种项目团队的流程、表单、字段、数据报表,以及具备丰富的模板市场。
【官网/教程】
3.分布式版本控制系统:Git
优点:分布式开发、速度快、灵活
简介:Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。
【教程/官网】
4.数据库管理工具:Navicat
优点:高效、安全,最好用的数据库管理工具。
简介:“Navicat”是一套可创建多个连接的数据库管理工具,用以方便管理 MySQL、Oracle、PostgreSQL、SQLite、SQL Server、MariaDB 和 MongoDB 等不同类型的数据库,它与阿里云、腾讯云、华为云、Amazon RDS、Amazon Aurora、Amazon Redshift、Microsoft Azure、Oracle Cloud 和 MongoDB Atlas等云数据库兼容。
【官网/教程】
其余工具可通过《神级程序员都用什么工具?程序员生产力工具大全 》查看,以上均整理自该文章。
文章标题:为什么C语言程序中必须要有一个且只能有一个main()函数,发布者:小编,转载请注明出处:https://worktile.com/kb/p/40682