关于int main(void)函数的那点事

2019-08-14 07:25发布

为什么STM32中必须要以int main(void)才不会警告!!!main函数有返回值吗?
为什么我写一个return  int型的main函数又会报错,,求解释!!!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
11条回答
互利共赢
2019-08-15 21:45
这个问题说是MDK规定的是对的,但是归根原因是:在.S启动文件中调用的是_main()函数,注意前面的“_”符号,这个是调用mdk提供的一个库函数,里面做了一些有编译器为我们完成的工作:__scatterload()->__rt_entry()->__user_setup_stackheap()主要就是这个流程,这里是不是也明白了我们在.S文件中的__user_setup_stackheap()函数的作用,就是在_main()中调用的;接下来进入我们的main()函数,如果你的main函数是个while循环,main就不返回,否则是要返回的,那么既然返回,那你的返回类型是啥,这在_mian()中是有要求的,因为在_mian中调用了exit()函数来处理我们的main的返回值,所以你写的mian函数要求是int    mian()    return x;

一周热门 更多>