keil中为啥submain会高于main

如题所述

1 submain会高于main
2 因为在Keil中,submain是启动函数,在程序运行前就已经执行,而main函数则是程序的入口函数,只有在submain执行完后才会被调用,因此submain会高于main。

3 除此之外,submain多用于一些底层初始化的操作,例如内存、中断等的初始化,而main则是程序的逻辑核心,因此submain和main在程序运行中有着不同的作用和执行顺序。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2023-03-27
在Keil中,SubMain和Main是按照名字来执行的程序段,而不是按照位置。

当您在Keil中创建一个新项目时,Keil会生成一个默认文件main.c并将其视为程序入口点。然而,在大多数情况下,我们可能需要使用其他函数来为主函数main()进行初始化,比如硬件初始化、外设初始化等。这时,我们可以在代码中编写另一个函数,并将其命名为SubMain(),然后将其设置为程序入口点。这样在程序被执行时,先执行SubMain()函数,然后再执行Main()函数。

因此,当您在Keil中设置SubMain()函数为程序入口点时,SubMain()函数就会被先执行,然后再执行Main()函数。这就解释了为什么SubMain会优先于Main执行。

需要注意的是,实际上这两个函数的执行顺序并不影响程序的运行,只不过SubMain()函数常常用于初始化外设的操作,所以通常会先执行SubMain()函数来进行初始化工作。
相似回答