C中的main()函数有什么特别之处? 在我的嵌入式C编译器中,它告诉程序计数器从哪里开始。无论首先(作为指令)出现在主要功能中,它都将首先放在闪存中。那么PC程序呢?当我们为PC编程时,main()的含义是什么?
答案 0 :(得分:5)
在托管实现(基本上,任何带有操作系统的东西)上,main
被定义为程序的入口点。它是启动程序时运行时环境将调用的函数。
在独立实现(嵌入式系统,PLC等)上,入口点就是实现所说的。那可能是main
,也可能是别的。
答案 1 :(得分:3)
简单来说:
main
函数没有什么特别之处,除了程序启动时系统调用它。
答案 2 :(得分:0)
当您的操作系统运行程序时,您的程序需要将控制权交给它。操作系统只知道在main()
函数中程序的内部开始。
答案 3 :(得分:0)
当操作系统在C中运行程序时,它会通过控制 计算机到那个程序......关键是操作系统需要知道在哪里 在程序内部需要传递控件。在C的情况下 语言程序,它是操作系统的main()函数 正在寻找。
答案 4 :(得分:0)
功能 main 很特别 - 您的程序在开头执行 主要。这意味着每个程序必须有一个主要的地方。 main通常会调用其他函数来帮助执行它的工作,有些是你写的,还有其他的 来自为您提供的库。
你可以在每本可能的C书中找到它。
答案 5 :(得分:0)
主要功能是“C程序”启动的地方,就C标准而言。但是在标准之外的现实世界中,有硬件,在调用main()之前还需要做其他事情。
在典型的嵌入式系统上,您有一个复位中断服务程序,在上电复位(或其他复位原因)后结束。从此ISR中,应按以下顺序完成以下操作:
因此,当调用main()时,您可以获得足够稳定的环境,以便标准C程序按预期执行。
使用main()作为重置向量是非正统和非标准的。 C标准要求在调用main()之前已经初始化了静态存储持续时间变量。另外,你真的不想做基本的事情,比如在main()中设置堆栈指针,因为这会弄乱你在main()中的所有局部变量。
答案 6 :(得分:0)
主要功能允许C程序找到程序的开头。程序启动时总是调用main函数。