为什么C语言程序中必须要有一个且只能有一个main()函数

这是因为:有些初始化代码,会在main()函数启动前运行,这个启动代码会调用我们编写的main()函数,所以其它函数可以任意编写,main()的格式是固定的,是我们自己编写的代码,我们自己的程序启动的地方,通常也是我们自己的程序结束的地方。

main()程序或者整个程序(若干人编写的)运行的起点,C这整个系统除了自己编写的部分外,还有一部分,是编译系统定义的。自己编写的部分,从main()函数启动运行一般来说,也在main()函数里结束。这种情况是正常的,而且没有错误的,程序运行情况。通常我们并不是从头编写整个程序(比如汇编那样,把一切掌握在自己手中)

所以,系统为了简化我们编程,对一些硬件相关的,操作系统相关的,还有一些是编译器相关的代码,写在库里,其中有些初始化代码,会在main()函数启动前运行,这个启动代码会调用我们编写的main()函数,所以其它函数可以任意编写,main()的格式是固定的,是我们自己编写的代码,我们自己的程序启动的地方,通常也是我们自己的程序结束的地方。

计算机其实在同一瞬间只能执行同时执行一条命令,看起来程序有那么多功能、那么多代码,其实计算机cpu执行起来是按优先级顺序执行的,并不能同时执行两条或者多条命令,所以给计算机写的程序必须要有一定的规则和顺序,main函数是c语言程序的入口地址,有且只有一个,如果多个main函数的程序存在,计算机执行之后要么是后面的main函数的地址将前面的覆盖掉,到最后只行政一个入口地址,要么若多入口程序真的存在..计算机是不会自己做出选择的,,所以..会死机吧..或者随机执行个入口了…

这样的话写程序就违反了自己写程序的初衷。

延伸阅读:

什么是main()函数?

main函数,又称主函数,是程序执行的起点,main是相对来说的,如同音学理论之主调于泛音,泛音即程序中的除main之外的其他函数,迎合人们的思考方式而生成的而非必定的模式。有主有次,执行起来条清缕析,既可将程序模块化又实现了一个闭合的整体。

程序执行总是从main函数开始,如果有有其他函数,则完成对其他函数的调用后再返回到主函数,最后由main函数结束整个程序。在执行程序时,由系统调用main函数。main 函数是在程序启动中完成对具有静态存储期的非局部对象的初始化之后被调用的。它是程序在有宿主 (hosted)环境(亦即有操作系统)中所指定的入口点。自立程序(启动加载器,操作系统内核,等等)的入口点则是由实现定义的。

文章标题:为什么C语言程序中必须要有一个且只能有一个main()函数,发布者:小编,转载请注明出处:https://worktile.com/kb/p/40682

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小编小编认证作者
上一篇 2023年2月23日
下一篇 2023年2月23日

相关推荐

  • 数据库中表和数据什么关系

    数据库中表与数据的关系包括:1、数据存储;2、数据管理;3、数据操作;4、数据检索;5、数据安全;6、数据一致性。表是数据库中的一个基本组织结构,可以理解为是数据的一个存储容器,数据是保存在表中的具体信息。 1、数据存储 表:表是数据库中的一个基本组织结构,可以理解为是数据的一个存储容器。它由行和列…

    2023年7月13日
    59700
  • 提高任务工作效率的工具有哪些

    提高任务工作效率的工具有:一、向日葵远程控制软件;二、PDF Shaper;三、Mem Reduct;四、File Converter;五、EverythingToolbar。向日葵远程控制软件是一款好用的跨平台跨系统的远程操控工具,支持 Windows 、macOS 、Linux 安卓和苹果五大操…

    2023年4月16日
    26000
  • DataVisor创始人谢映莲:智能生意应坚守数据道德,性别偏见存在但可以克服

    文| babayage 编辑 | 笑 笑 恐惧于一眼到底的人生 放弃教职加入微软 2005年,谢映莲完成卡内基梅隆计算机专业的博士学位,开始纠结于未来选择。 卡内基梅隆位于美国匹兹堡,是计算机工业最初的推动者之一,计算机专业排名高居全美第二。有别于硅谷“技术创新+商业模式+金融资本”构成的自由氛围,…

    2022年3月20日
    60800
  • 什么是敏捷开发中的故事点

    摘要:敏捷开发中的故事点是度量工作量的单位,它有助于团队估计实现用户故事的相对努力。敏捷团队使用故事点进行迭代规划和进度跟踪。核心观点包括:1、工作量估算;2、优先级排序;3、迭代计划;4、进度跟踪;5、持续改进。故事点通过比较方式评估任务难度,并结合团队速度,指导冲刺规划和发布计划。着重考虑功能复…

    2023年11月27日
    33800
  • oa办公自动化系

    标题:探究OA办公自动化系统在现代办公中的作用 OA办公自动化系统在现代办公中具有提高办公效率、优化工作流程、保障数据安全、支持远程协作以及节省成本5个方面的显著作用,这些功能共同构成了该系统对企业的核心价值。在提高办公效率方面,OA系统通过自动化处理日常事务,显著降低了员工完成任务所需的时间。通过…

    2024年1月12日
    22100
  • 为什么vscode右键没有出现

    Visual Studio Code(VSCode)中右键菜单不显示的问题可能是由于几个原因造成的,包括插件冲突、配置文件错误、软件版本不兼容、系统权限设置或者是文件关联设置不当。插件冲突是最常见的原因,这是因为一些扩展可能会修改或限制VSCode的右键菜单项,导致部分或全部右键菜单消失。要解决这个…

    2024年4月3日
    14600
  • css中display属性

    CSS中的display属性控制元素如何在页面上布局。本文将涵盖3个主要方面:1、display属性的主要值;2、display属性如何影响布局和流动性;3、display属性在实际设计中的应用案例。通过了解display属性的不同值和其在布局中的角色,开发者可以更有效地控制页面元素的展示方式。 1…

    2023年8月14日
    38500
  • 为什么java函数不支持参数默认值

    java函数是不支持参数默认值的,但可以通过重载来实现。如果你想有参数默认值,可以换个方法。JAVA函数也可以叫做方法,要调用方法可以通过对象去调用方法(如果方法是非静态的),也可以直接用类名去调用方法(如果方法是静态的)。 java函数是不支持参数默认值的,但可以通过重载来实现。如果你想有参数默认…

    2023年1月30日
    1.7K00
  • 团队管理思路怎么写

    写团队管理思路要注意以下几点:1、组织架构要明确;2、目标要明确;3、权利和责任要对等;4、工作可视化。团队是有着共同目标,并且为达成这一目标而共同努力的一群人。 1、组织架构要明确 一个团队的组织架构是团队开展工作的基础,就像盖房子需要先有地基和框架一样,每个人都要有明确的位置和功能。 不管团队大…

    2022年11月6日
    1.5K00
  • sas硬盘和sata硬盘区别是什么

    sas硬盘和sata硬盘区别在于以下几个方面:1、主体不同;2、特点不同;3、目的不同。其中,主体不同是指,sas硬盘是并行SCSI接口之后开发出的全新接口,sata硬盘存储结点由存储器控制接口MCI和SATA硬盘控制器构成。 一、区别 1、主体不同 sas硬盘是并行SCSI接口之后开发出的全新接口…

    2023年3月10日
    3.5K00

发表回复

登录后才能评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部