[STM32F4] 哪一种语句执行效率高

[复制链接]
2088|22
 楼主| hfdy01 发表于 2021-11-6 19:16 | 显示全部楼层 |阅读模式
我们在写程序的时候,总会用到switch语句跟if语句,请问在单片机中,我实现同样的功能任务切换,在同样的MCLK下,我用switch...case语句或者是if...else if语句,哪一种语句的执行效率高,及所用时间短,占用资源少?这个问题我一直都想整明白的,可是一直都不得要领,请教各位大虾了,谢谢!
CallReceiver 发表于 2021-11-6 19:19 | 显示全部楼层
现在是什么年代了,有必要纠结这个问题吗?
boy1990 发表于 2021-11-6 19:23 | 显示全部楼层
if语句效率高 switch可读性强 话说超过三个以上的分支还是建议用switch。
sourceInsight 发表于 2021-11-6 19:25 | 显示全部楼层
主要还是看编译器的设置以及单片机的内部结构   这个好像没有固定的答案。。
bbapple 发表于 2021-11-6 19:28 | 显示全部楼层
经典if.....else语句,执行效率高,switch虽然可读性较强,但是限制性很大
handleMessage 发表于 2021-11-6 19:30 | 显示全部楼层
和你的参数有直接相关性,其中一个是(不管是if还是switch)第一次判断就成立了,于是就结束了。
zhouhuanの 发表于 2021-11-6 19:38 | 显示全部楼层
这个问题的的却很重要的,在单片机资源有限的条件下的还必须注意的。
wanglaojii 发表于 2021-11-6 19:46 | 显示全部楼层
这要看怎么应用和编程思想 IF套用
wanglaojii 发表于 2021-11-6 21:00 | 显示全部楼层
这个判断好像只是两个时钟吧。。
laozhongyi 发表于 2021-11-6 21:01 | 显示全部楼层
按理CASE快,多数用查表跳转完成

实际取决编译的代码
Edisons 发表于 2021-11-6 21:04 | 显示全部楼层
不一样的编译器和不一样的优化条件,同样的C语句编译出来的汇编指令都是不同的,所以这个问题很难回答。
_gege 发表于 2021-11-6 21:05 | 显示全部楼层
如今大多数的主流芯片在内核里都内置了预取指和跳转分支预取指等功能。
Mozarts 发表于 2021-11-6 21:09 | 显示全部楼层
switch语句反而比ifelse的执行效率要高。
Listate 发表于 2021-11-6 21:09 | 显示全部楼层
如果选择量很少,估计好if else 好用,多了的话,估计就是switch case了,至少看着方便。。。
feiqi1 发表于 2021-11-6 21:12 | 显示全部楼层
是不是跟硬件也有关系啊
androidbus 发表于 2021-11-6 21:13 | 显示全部楼层
不论用什么  都要考虑全面 要不然就会有bug
koala889 发表于 2021-11-8 10:53 | 显示全部楼层
好像一直感觉不出来,哪个效率高,
现在应该不差这么点效率了吧
磨砂 发表于 2021-12-3 19:48 | 显示全部楼层
感觉还是c语言了
晓伍 发表于 2021-12-3 19:49 | 显示全部楼层
还真是没有比较
八层楼 发表于 2021-12-3 19:52 | 显示全部楼层
看是在什么层面上的吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

78

主题

1578

帖子

1

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