为什么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日

相关推荐

  • 怎么制定okr

    制定okr的步骤:1、了解公司目标;2、选择合适的工具;3、让整个团队参与进来;4、编写 OKR 目标语句;5、制定关键成果;6、规划您的计划;7、规划您的计划;8、庆祝 70%。了解公司目标是指,编写有效的 OKR 首先要了解组织目标。 1、了解公司目标 编写有效的 OKR 首先要了解组织目标。明…

    2023年2月23日
    31500
  • 如何提升项目履约管理水平

    提升项目履约管理水平,关键在于优化流程、提高团队协作效率、采用适当的技术工具、加强风险管理、以及进行定期的培训和评估。特别是在优化流程方面,它能够直接提升工作效率和项目交付的质量,减少不必要的时间和资源浪费。通过对现有流程的细致分析,识别出瓶颈和冗余步骤,并采取措施进行精简和优化,如实施标准化操作流…

    2024年4月10日
    8400
  • 如何提高项目部管理人员水平

    项目部管理人员水平的提高关键在于:系统培训、实践经验、持续学习、沟通能力、团队协作。系统培训指的是对项目管理知识和技能的学习,它是提高个人管理能力的基石。通过参加专业的项目管理课程、讲座或研讨会,管理人员可以获取管理的理论基础、工具与技术,从而提高项目管理效能。在此基础之上,结合实际工作中的实践经验…

    2024年4月11日
    6800
  • 融资项目管理岗是做什么的

    融资项目管理岗位负责筹划和实施企业的融资活动,涉及制定融资策略、评估融资途径、协调内外部资源以及管理融资项目的全过程。专注于确定融资需求并在此基础上深入展开。 融资项目管理岗位需精通金融市场情况,以便高效地筹集资金,并确保资金成本处于可控范围内。此职位既要评估市场趋势,亦要和投资机构沟通协调,确保融…

    2024年1月8日
    22700
  • 时间管理工具有什么

    时间管理工具有:一、滴答清单;二、Todo清单;三、极简待办;四、Forest 专注森林;五、番茄TODO;六、Worktile。滴答清单的功能覆盖更加全面,除了待办事项,还能实现更多的时间管理需求,并且还支持多设备多平台同步。 一、滴答清单 最近爆火的一款清单管理软件,和其他APP相比,它的功能覆…

    2023年3月31日
    1.1K00
  • 如何在云原生环境中保证数据安全

    解读云原生下的数据安全挑战:要点归纳,保障云原生环境中数据安全牵涉1、综合性策略搭建、2、精细化的权限管理、3、加密技术运用、4、持续的安全监控、5、应急响应计划制定。其中,综合性策略搭建为构筑稳固防线的基石,需综合考虑组织架构、业务流程,以及应对不断变化安全威胁的能力。在这五个要点中,综合性策略搭…

    2023年12月28日
    22800
  • oa系统价值

    标题:OA系统的多维价值解析 办公自动化系统(OA系统) 在提高工作效率、优化流程管理、降低运营成本、增强企业通讯及数据分析能力方面展示多维价值。其中,提高工作效率 可谓该系统的一大亮点,通过整合资源和信息,自动化常规任务,减少了人工操作中的重复性工作,同时也缩短了决策时间。部署 OA 系统,对提升…

    2024年1月12日
    22300
  • 企业版微信oa系统

    标题:企业版微信OA系统概述与实用性分析 概述 企业版微信OA系统集成了即时通讯与办公自动化功能,1、提升工作效率2、强化内部协作3、保障信息安全。针对提升工作效率,系统通过集成的工具如日程管理、文件共享和即时消息推送,优化了员工的工作流程,从而减少了时间浪费,简化了复杂的沟通任务。** 正文内容 …

    2024年1月15日
    33700
  • 如何在Jira中使用快速过滤器

    JIRA快速过滤器的应用涵盖项目管理中急需解决的问题筛选、任务归类、团队活动监控等多样场景,提供快速查找和处理特定事项的能力。重点使用步骤包括设定查询语句、保存为快速过滤器、共享给项目成员以及适用于看板或积压工作列表。例如,在团队看板上,可以通过创建包含特定标签的事项的过滤器,来使得团队成员专注于当…

    2024年1月3日
    47600
  • Spring Cloud 和 Nginx 有哪些区别

    区别是:Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、数据监控等。而Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务,…

    2023年2月14日
    51900

发表回复

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

400-800-1024

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

分享本页
返回顶部