[STM32] 关于main函数的那点事

[复制链接]
2335|12
 楼主| 严龙 发表于 2014-11-29 19:31 | 显示全部楼层 |阅读模式
为什么STM32中必须要以int main()才不会警告!!!main函数有返回值吗?为什么我写一个return  int型的main函数又会报错,,求解释!!!
wangch_sh 发表于 2014-11-29 21:04 | 显示全部楼层
51没有,STM32有。
huangxz 发表于 2014-11-29 21:51 | 显示全部楼层
这些都是编译器定的规矩,一般情况下main是不会返回的,但是在ansi-c里面确实是有返回值的。楼主可以看看较深入的有关c语言的书,
也可以参考此贴
http://nxlhero.blog.51cto.com/962631/703953

评分

参与人数 1威望 +2 收起 理由
严龙 + 2 很给力!

查看全部评分

diweo 发表于 2014-11-30 11:05 | 显示全部楼层
本帖最后由 diweo 于 2014-11-30 11:07 编辑

严格来说,main()不是程序执行的第一个函数,它是被在它前面先执行的代码所调用的,那么编译器对它的返回值类型肯定是有要求的。
但是main()函数又很特殊,里面需要有个死循环。所以如果你在它最后显式的return的话,编译器会警告执行不到return语句。
这确实有点矛盾,但是特殊对象要特殊对待,不要钻牛角尖。
ningling_21 发表于 2014-11-30 11:38 | 显示全部楼层
main函数不但有返回值还有2个参数,但嵌入式环境下根本不需要,所以参数省略了
 楼主| 严龙 发表于 2014-11-30 18:16 | 显示全部楼层
diweo 发表于 2014-11-30 11:05
严格来说,main()不是程序执行的第一个函数,它是被在它前面先执行的代码所调用的,那么编译器对它的返回值 ...

哦哦,谢谢
 楼主| 严龙 发表于 2014-11-30 18:17 | 显示全部楼层
ningling_21 发表于 2014-11-30 11:38
main函数不但有返回值还有2个参数,但嵌入式环境下根本不需要,所以参数省略了 ...

谢谢、、
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

16

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部