打印
[STM32F4]

哪一种语句执行效率高

[复制链接]
1246|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 | 只看该作者
主要还是看编译器的设置以及单片机的内部结构   这个好像没有固定的答案。。

使用特权

评论回复
5
bbapple| | 2021-11-6 19:28 | 只看该作者
经典if.....else语句,执行效率高,switch虽然可读性较强,但是限制性很大

使用特权

评论回复
6
handleMessage| | 2021-11-6 19:30 | 只看该作者
和你的参数有直接相关性,其中一个是(不管是if还是switch)第一次判断就成立了,于是就结束了。

使用特权

评论回复
7
zhouhuanの| | 2021-11-6 19:38 | 只看该作者
这个问题的的却很重要的,在单片机资源有限的条件下的还必须注意的。

使用特权

评论回复
8
wanglaojii| | 2021-11-6 19:46 | 只看该作者
这要看怎么应用和编程思想 IF套用

使用特权

评论回复
9
wanglaojii| | 2021-11-6 21:00 | 只看该作者
这个判断好像只是两个时钟吧。。

使用特权

评论回复
10
laozhongyi| | 2021-11-6 21:01 | 只看该作者
按理CASE快,多数用查表跳转完成

实际取决编译的代码

使用特权

评论回复
11
Edisons| | 2021-11-6 21:04 | 只看该作者
不一样的编译器和不一样的优化条件,同样的C语句编译出来的汇编指令都是不同的,所以这个问题很难回答。

使用特权

评论回复
12
_gege| | 2021-11-6 21:05 | 只看该作者
如今大多数的主流芯片在内核里都内置了预取指和跳转分支预取指等功能。

使用特权

评论回复
13
Mozarts| | 2021-11-6 21:09 | 只看该作者
switch语句反而比ifelse的执行效率要高。

使用特权

评论回复
14
Listate| | 2021-11-6 21:09 | 只看该作者
如果选择量很少,估计好if else 好用,多了的话,估计就是switch case了,至少看着方便。。。

使用特权

评论回复
15
feiqi1| | 2021-11-6 21:12 | 只看该作者
是不是跟硬件也有关系啊

使用特权

评论回复
16
androidbus| | 2021-11-6 21:13 | 只看该作者
不论用什么  都要考虑全面 要不然就会有bug

使用特权

评论回复
17
koala889| | 2021-11-8 10:53 | 只看该作者
好像一直感觉不出来,哪个效率高,
现在应该不差这么点效率了吧

使用特权

评论回复
18
磨砂| | 2021-12-3 19:48 | 只看该作者
感觉还是c语言了

使用特权

评论回复
19
晓伍| | 2021-12-3 19:49 | 只看该作者
还真是没有比较

使用特权

评论回复
20
八层楼| | 2021-12-3 19:52 | 只看该作者
看是在什么层面上的吧

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

78

主题

1578

帖子

1

粉丝