社区
C++ 语言
帖子详情
为何代码要推荐写为:if(0 == x)?
move_forward
2009-10-06 03:39:32
如题。
为何代码要推荐写为:if(0 == x),而if ( x == 0)就不ok?
thanks!
...全文
507
12
打赏
收藏
为何代码要推荐写为:if(0 == x)?
如题。 为何代码要推荐写为:if(0 == x),而if ( x == 0)就不ok? thanks!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Aeris
2009-10-06
打赏
举报
回复
个人不建议写
if (0 == x)
理由:
1.不符合习惯,可读性差一点
2.如果是 if (x == y)误写成if (x = y),那么无论你正过来写还是倒过来写都没法避免问题。所以这种做法不能从根本上解决==误写成=问题。
3.涉及操作符重载的时候,有时是不能反过来写的(比如某些类库的设计有问题,忘记重载反过来的操作符了,还好一般都记得)。
cphj
2009-10-06
打赏
举报
回复
这是一个比较老旧的技巧,原因前面的回答都说了
补充一下:
这个技巧与C和C++的哲学有些矛盾,因为C/C++都是“相信程序员会做正确的事情”,也就是不要因为有可能出错就去限制程序员
而如果硬要规定这么写(0 == x),感觉自己都不相信自己,有点底气不足
并且,如果(x == y),都是变量的话,那怎么办呢?
其实现代很多代码扫描工具都可以对(x = 0)给出警告,没有必要那么紧张
当然,如果你一直习惯写(0 == x),也没错,自己习惯就好
delphiwcdj
2009-10-06
打赏
举报
回复
[Quote=引用 1 楼 thefirstz 的回复:]
如果不小心少写一个等号写成if(0 = x) 这样编译时候就会报错,但if(x = 0)不会报错
[/Quote]
yes
jackyjkchen
2009-10-06
打赏
举报
回复
现代化的编译器如果出现if(x=0)都会给警告的,也就是tc不给
很土
2009-10-06
打赏
举报
回复
个人觉得还是 if (x == 0) 比较好。
我的所有类库或产品中都没有使用 if (0 == x),因为这是一个不符合正常的逻辑思维,反而 if (x == 0) 更加符合正常的逻辑思维。
就象小学时的单位换算题:5元有多少分?答:100分/元 x 5元 = 500分
booksoon
2009-10-06
打赏
举报
回复
避免因为粗心写成if(x=0) 可参见<C语言陷阱>一书有精彩的论述
GoonYangXiaofang
2009-10-06
打赏
举报
回复
好像高质量C/C++里建议这么做。但是众多大师级人物写的书中并未出现0 == x的写法。
个人认为最好还是x == 0,这样可读性好。这也不是粗心的问题,如果很容易因粗心造成不必要麻烦的话,可能C++标准里早就出现代替==的符号了。
nenkeer
2009-10-06
打赏
举报
回复
这是一个用来防止自己马虎的小技巧
防止把if(x == 0)写成if(x = 0) 编译器不会报错 只能靠自己检查发现
如果是if(0 == x)的话 写成if(0 = x)编译器会报错
xiuxiu6
2009-10-06
打赏
举报
回复
避免粗心写成if(x=0)
yarise1943
2009-10-06
打赏
举报
回复
xm zm获得积分啊?
arong1234
2009-10-06
打赏
举报
回复
避免因为粗心写成if(x=0)
昵称很不好取
2009-10-06
打赏
举报
回复
如果不小心少写一个等号写成if(0 = x) 这样编译时候就会报错,但if(x = 0)不会报错
python递归求5!_python递归求阶乘的方法
python递归求阶乘的方法阶乘:...
推荐
学习:Python视频教程def f(x):if x == 0:return 0elif x == 1:return 1else:return (x * f(x-1))print(f(5))
代码
解释:如果 x=5,那么就返回 5*f(4) 的值。而想知道这个值,...
古堡算式 福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式: ABCDE * ? = EDCBA
古堡算式 福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式: ABCDE * ? = EDCBA (abcde不能重复!) #include #include #include int main(){ int i,j; for(i=10000;i char tmp[17]; int tmpInt; ...
python
代码
if not x: 和 if x is not None: 和 if not x is None:使用介绍
python
代码
if not x: 和 if x is not None: 和 if not x is None:使用介绍 摘要:
代码
中经常会有变量是否为None的判断,有三种主要的写法:第一种是`if x is None`;第二种是`if not x:`;第三种是`if not x is None`...
python学习笔记——DAY3 Python逻辑运算
3.1 Python条件语句(if-else) Python 条件语句是通过一条或多条语句的执行结果(True 或者 False)来决定后续执行的
代码
块。 if 基本语句 if 条件: 内部
代码
块 内部
代码
块 else: 内部
代码
块 print("满足...
Arcgis 中栅格计算器赋值Python
代码
(二)
上次分享了一次python
代码
,但是上次计算的类型是根据value数值,给name字段赋值汉字名称,但是有的同学可能会遇到这种问题,就是汉字命名的土地利用分类,在一些软件计算中并不能用,必须赋值为English。...
C++ 语言
65,167
社区成员
250,532
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章