[英]What does the main() function mean for a program
C中的main()函数有什么特别之处? 在我的嵌入式C编译器中,它告诉程序计数器从哪里开始。 无论首先(作为指令)出现在主要功能中,它都将首先放在闪存中。 那么PC程序呢? 当我们为PC编程时main()的含义是什么?
在托管实现 (基本上,任何具有操作系统的实现)上, main
被定义为程序的入口点。 它是启动程序时运行时环境将调用的函数。
在独立实现 (嵌入式系统,PLC等)上,切入点就是实现所说的。 这可能是main
,或者可能是其他的东西。
简单来说:
除了程序启动时系统调用它之外, main
功能没有什么特别之处。
当您的操作系统运行程序时,您的程序需要将控制权交给它。 操作系统只知道在main()
函数中从程序内部开始的位置。
函数main是特殊的 - 您的程序在main的开头执行。 这意味着每个程序必须有一个主要的地方。 main通常会调用其他函数来帮助执行其工作,一些是您编写的,另一些是来自为您提供的库。
你可以在每本可能的C书中找到它。
就C标准而言,主要功能是“C程序”的开始。 但是在标准之外的现实世界中,有硬件,在调用main()之前还需要做其他事情。
在典型的嵌入式系统中,您有一个复位中断服务程序,在上电复位(或其他复位原因)后结束。 从此ISR中,应按以下顺序执行以下操作:
因此,当调用main()时,您可以获得足够稳定的环境,以便标准C程序按预期执行。
使用main()作为重置向量是非正统和非标准的。 C标准要求在调用main()之前已初始化静态存储持续时间变量。 另外,你真的不想做基本的事情,比如在main()中设置堆栈指针,因为这会搞乱你在main()中的所有局部变量。
主要功能允许C程序找到程序的开头。 程序启动时始终调用main函数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.