免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: safedead
打印 上一主题 下一主题

[C] [C实现]条件表达式的执行顺序是固定的吗? [复制链接]

论坛徽章:
0
171 [报告]
发表于 2012-09-29 15:28 |只看该作者
本帖最后由 wwwsq 于 2012-09-29 15:29 编辑
sacry 发表于 2012-09-29 15:21
UP!



能用20%的大家都了解的语言特性,实现一个强大的软件,这才是高手。(你知道哪20%是大家都了解的吗?你知道如何绕开晦涩的地方吗?你知道哪些特性是晦涩的吗?)

你去看看nginx的代码,里面几乎没有任何奇技淫巧。就是平实的代码。写好了,就是伟大的软件。



论坛徽章:
3
巳蛇
日期:2013-10-03 10:41:48申猴
日期:2014-07-29 16:12:04天蝎座
日期:2014-08-21 09:24:52
172 [报告]
发表于 2012-09-29 15:28 |只看该作者
不要讨论啦,
已经没啥意思了...

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
173 [报告]
发表于 2012-09-29 15:29 |只看该作者
wwwsq 发表于 2012-09-29 15:25
你回过头去看看八楼的帖子,看看你在反对什么,在支持什么。


wwwsq 发表于 2012-09-28 20:59
楼上几位的解释都是对的。

不过在实践中,比较推荐的做法是不要在 if (expr_a || expr_b) 的时候做什么实质性的‘写’操作。因为那样的代码读起来太累,容易隐藏bug。

比如楼主遇到的疑惑和担心,其实是完全可以避免的。之所以会有这麻烦,就是当初写代码的人水平太次,或者太爱卖弄。

建议楼主在有机会的时候,把那块代码改写一下,写成任何人都不会担心的代码,写成不会有任何迷惑的代码。


OwnWaterloo 发表于 2012-09-28 22:44
回复 16# wwwsq

你这逻辑我不懂,我懂的逻辑是:看不懂别人的代码就是水平次。



PS: "++i = i++"的结果从你提出来时看懂了, 没有一个统一的结果就是它的结果。  你不认为这是一个结果那就是你水平次的表现。
再PS: 你还可以看看158楼, 看看是怎么总结的。

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
174 [报告]
发表于 2012-09-29 15:30 |只看该作者
wwwsq 发表于 2012-09-29 15:28
能用20%的大家都了解的语言特性,实现一个强大的软件,这才是高手。

你去看看nginx的代码,里面几乎没有任何奇技淫巧。就是平实的代码。写好了,就是伟大的软件。


wwwsq 发表于 2012-09-28 20:59
不过在实践中,比较推荐的做法是不要在 if (expr_a || expr_b) 的时候做什么实质性的‘写’操作。因为那样的代码读起来太累,容易隐藏bug。



如果我在nginix里面找出 "||",你打算怎么收场?

论坛徽章:
0
175 [报告]
发表于 2012-09-29 15:31 |只看该作者
OwnWaterloo 发表于 2012-09-29 15:25
还有,墨墨迹迹也是诬陷。
从我不回答你这个问题 —— "++i = i++" —— 开始,就已经表明我的态度了: ...


你们真有耐性,从昨晚扯到现在就在扯这个问题

论坛徽章:
0
176 [报告]
发表于 2012-09-29 15:31 |只看该作者
回复 171# wwwsq


  能用20%的大家都了解的语言特性,实现一个强大的软件,这才是高手。(你知道哪20%是大家都了解的吗?你知道如何绕开晦涩的地方吗?你知道哪些特性是晦涩的吗?)

你去看看nginx的代码,里面几乎没有任何奇技淫巧。就是平实的代码。写好了,就是伟大的软件。



纯感谢下你定义了高手,和伟大的软件。。。。。。。

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
177 [报告]
发表于 2012-09-29 15:32 |只看该作者
wwwsq 发表于 2012-09-29 15:27
你不知道那句话会怎么执行,还磨磨唧唧不承认。

有些代码就是没人看得懂的。(看得懂的那是妖怪,清楚所有编译器的实现细节)



我能确认自己不知道"++i = i++"怎么执行,就是我看懂了它的标志。 我不指望你能理解这里面的逻辑。
只是为了避免你诬陷我而已。

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
178 [报告]
发表于 2012-09-29 15:33 |只看该作者
wwwsq 发表于 2012-09-29 15:26
"x = (++i = i++)" 你看得懂,你能知道这句话要做什么吗?


你问这样的问题就已经说明你水平次了。

论坛徽章:
0
179 [报告]
发表于 2012-09-29 15:36 |只看该作者
OwnWaterloo 发表于 2012-09-29 15:29
PS: "++i = i++"的结果从你提出来时看懂了, 没有一个统一的结果就是它的结果。  你不认 ...



你根本就不知道++i = i++那段代码在做什么。你只是用ub在搪塞而已。

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
180 [报告]
发表于 2012-09-29 15:37 |只看该作者
wwwsq 发表于 2012-09-29 15:36
你根本就不知道++i = i++那段代码在做什么。你只是用ub在搪塞而已。


这就是你我的差距。 我认为我看懂了, 你认为我仅仅是在搪塞。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP