找回密码
 立即注册
CeraNetworksBGVM服务器主机交流IP归属甄别会员请立即修改密码
查看: 86|回复: 9

有没有C语言大佬,有一个哲学问题请教。

[复制链接]

19

主题

297

回帖

1210

积分

金牌会员

积分
1210
发表于 2018-8-21 16:16:31 | 显示全部楼层 |阅读模式
今天听闻一个奇怪的理论
if(0==i)   和 if(i==0)这两条判断
据说if(0==i)比较快。
但是我查看编译过程中生成的list汇编文件  发觉两者没啥区别。
这个是要分平台和编译器来论的吗


回复

使用道具 举报

16

主题

100

回帖

402

积分

中级会员

积分
402
发表于 2018-8-21 16:23:26 | 显示全部楼层
我记得 数值==变量名 这种写法是为了防止 变量名==数值 这种写法少写一个等于号而变成了赋值语句吧~

当然,不排除现代编译器自动把if(0==i)   和 if(i==0) 都优化成if(0==i)了,所以两种写法产生的汇编其实都是if(0==i)的?
回复

使用道具 举报

65

主题

527

回帖

2140

积分

金牌会员

积分
2140
发表于 2018-8-22 09:35:00 | 显示全部楼层
本来还想进来装个逼 发现楼主自己才是大佬


                                                      
回复

使用道具 举报

18

主题

321

回帖

1145

积分

金牌会员

积分
1145
发表于 2018-8-21 16:19:04 | 显示全部楼层
是不是i==0要转换在判断,0==i直接判断内存地址啊?
回复

使用道具 举报

9

主题

82

回帖

303

积分

中级会员

积分
303
发表于 2018-8-21 16:22:15 | 显示全部楼层
这不是一样的么
回复

使用道具 举报

19

主题

297

回帖

1210

积分

金牌会员

积分
1210
 楼主| 发表于 2018-8-21 16:33:37 | 显示全部楼层

imyoy 发表于 2018-8-21 16:33

这不是一样的么

我也觉得目前实验的两个单片机编译器都是一样的
但是不知道是不是别的平台 别的编译器是不是不一样的
回复

使用道具 举报

64

主题

961

回帖

3350

积分

论坛元老

积分
3350
发表于 2018-8-21 16:37:50 | 显示全部楼层


看看汇编呀~
回复

使用道具 举报

46

主题

134

回帖

710

积分

高级会员

积分
710
发表于 2018-8-21 16:33:00 | 显示全部楼层
编译出来的结果是一样的。 这只是写法问题。
回复

使用道具 举报

35

主题

242

回帖

1288

积分

金牌会员

积分
1288
发表于 2018-8-21 16:40:31 | 显示全部楼层
大佬就是大佬, 在这硬件性能过剩的时代还那么较真。 循坏一亿次对比相差会有感吗?
回复

使用道具 举报

19

主题

297

回帖

1210

积分

金牌会员

积分
1210
 楼主| 发表于 2018-8-21 16:59:13 | 显示全部楼层

waterscud 发表于 2018-8-21 17:07

大佬就是大佬, 在这硬件性能过剩的时代还那么较真。 循坏一亿次对比相差会有感吗? ...

有的  在某些低端应用场合    或者是比较精密的应用场合   芯片的能力不够  一些操作需要一个指令周期一个指令周期的抠准时间
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|HS2V主机综合交流论坛

GMT+8, 2024-5-19 06:48 , Processed in 0.064630 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表