全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 2917|回复: 31

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

[复制链接]
发表于 2018-8-21 16:16:31 | 显示全部楼层 |阅读模式
今天听闻一个奇怪的理论
if(0==i)   和 if(i==0)这两条判断
据说if(0==i)比较快。
但是我查看编译过程中生成的list汇编文件  发觉两者没啥区别。
这个是要分平台和编译器来论的吗
发表于 2018-8-21 16:23:26 | 显示全部楼层
我记得 数值==变量名 这种写法是为了防止 变量名==数值 这种写法少写一个等于号而变成了赋值语句吧~

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

点评

这位大佬说的对,我们公司全部要求 常量==变量名,否则code review直接打回来  发表于 2018-8-22 09:35
发表于 2018-8-21 16:19:04 | 显示全部楼层
本来还想进来装个逼 发现楼主自己才是大佬
                                                      
发表于 2018-8-21 16:22:15 来自手机 | 显示全部楼层
是不是i==0要转换在判断,0==i直接判断内存地址啊?
发表于 2018-8-21 16:33:37 | 显示全部楼层
这不是一样的么
 楼主| 发表于 2018-8-21 16:37:50 | 显示全部楼层
imyoy 发表于 2018-8-21 16:33
这不是一样的么

我也觉得目前实验的两个单片机编译器都是一样的
但是不知道是不是别的平台 别的编译器是不是不一样的
发表于 2018-8-21 16:40:31 | 显示全部楼层
看看汇编呀~
发表于 2018-8-21 16:59:13 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2018-8-21 17:07:34 | 显示全部楼层
大佬就是大佬, 在这硬件性能过剩的时代还那么较真。 循坏一亿次对比相差会有感吗?
 楼主| 发表于 2018-8-21 17:10:21 | 显示全部楼层
waterscud 发表于 2018-8-21 17:07
大佬就是大佬, 在这硬件性能过剩的时代还那么较真。 循坏一亿次对比相差会有感吗? ...

有的  在某些低端应用场合    或者是比较精密的应用场合   芯片的能力不够  一些操作需要一个指令周期一个指令周期的抠准时间
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-4-20 02:39 , Processed in 0.064413 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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