免费注册 查看新帖 |

Chinaunix

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

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

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
61 [报告]
发表于 2012-09-29 03:18 |只看该作者
回复 60# wwwsq


    你知道什么叫懂么?

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
62 [报告]
发表于 2012-09-29 04:23 |只看该作者
wwwsq 发表于 2012-09-29 03:07
我很老实的承认,x = (++i = i++)这个代码我是看不懂的,而且我也不确定它是否UB。

你那点斤两,以为你不承认大家就看不出来?


wwwsq 发表于 2012-09-29 03:07
在项目代码里面看到这种代码,我的采取解决办法一定是写个例子验证一下。以确保我理解的结果,就是线上运行的结果。

按你的逻辑,写出垃圾代码不是水平次,看不懂垃圾代码的才是水平次。什么逻辑。即使我相信你看得懂这个例子,难道 i = i++ + 1 你也看得懂,凭空能知道运行结果?

有些垃圾代码就是很难看懂的,你不实际验证一下,你所谓的分析阅读就只是猜测。

至于改变环境什么的,我只能哈哈了。线上模块在那里运行,你不维护搞毛啊?还是你没能力维护?


我前面才说了你在"改代码 -> 观察 -> 改代码" 的内循环里跑不出去,我知道你只会这一招,别这么急着赞同我好吗?

问我有没有能力维护出问题的代码之前,不如先问问你自己问什么要发布有错的代码。
只能做一颗螺丝的人的眼界不同确实不同,我不指望也不愿意去理解你的苦逼。


wwwsq 发表于 2012-09-29 03:07
找点看不懂的垃圾代码,这还不容易?你都能看懂?扯淡!


我说的只是能看懂的比你多, 有说过我全能看懂?

看懂的意思是说: 首先能分辨代码本身是否是错的,其次才是它表达的含义。所以我知道哪些代码值得去理解它的含义,那些代码不值得。
我能区分哪些是文章 —— 不管它用了多么生僻的词汇 —— 而那些只是猴子随便敲出的乱码。
这种区分就是懂的一部分,理解不属于乱码部分的能力又是懂的另一部分。

你,哪怕是屎,也非得去尝一口、验证一下才能知道。

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
63 [报告]
发表于 2012-09-29 04:46 |只看该作者
回复 60# wwwsq

我自己明白且读起来最顺畅的代码,对你来说可能疑惑重重。
这事很无奈,但错不在我,因为我不是为了让人看不懂而这样写。至少我自己(再搭个sw,他的水平我还是很了解的)看得懂。
我不可能为了让你看懂而选择让我写起来不舒服的方式。只能怪你自己水平不够。


而你自己读起来顺畅的代码,对我来说毫无悬念。按我的逻辑,你就是水平次。


但在这个回复里:
wwwsq 发表于 2012-09-29 03:07
找点看不懂的垃圾代码,这还不容易?你都能看懂?扯淡!


你将命题了,变成故意找你自己都不明白的代码来考我
1. 居心不良
2. 你还没考倒
3. 你自己都不懂了,那按我的逻辑你即使把我考倒了,也没法证明你水平就不比我次


总之就是一个字:次。

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
64 [报告]
发表于 2012-09-29 06:47 |只看该作者
回复 62# OwnWaterloo


   
按你的逻辑,写出垃圾代码不是水平次,看不懂垃圾代码的才是水平次。什么逻辑。即使我相信你看得懂这个例子,难道 i = i++ + 1 你也看得懂,凭空能知道运行结果?


恩,我主要就是看到这句无语的…………不过,我们要不要考较一下他理解中文的能力再跟他说?我强烈怀疑前面的帖子他看不懂呢……


另外就是,线上更新也不是什么很难的东西,但是要线上更新,本身架构就很重要,因此肯定不会有什么非常垃圾的代码——肯定有人把关的。

如果不是这样,要线下更新也不难,以前我们做网游,一天24小时都有玩家,我们就要关服务器维护把所有玩家踢下去,又不是很难的事情。而且后来改了Linux服务器,直接脚本搞事,先拷贝文件(Windows是做不到的,因为会锁住运行的可执行文件),然后服务器重启,我们客户端又做了断线重连,玩家根本就察觉不到的。

最后,就算是全都是这么烂的代码,我也能改回来,以前客户端这边的C++base一堆的烂代码,我都一点点改过来了。没有改变现状的能力,这是水平问题。简而言之,次~

论坛徽章:
324
射手座
日期:2013-08-23 12:04:38射手座
日期:2013-08-23 16:18:12未羊
日期:2013-08-30 14:33:15水瓶座
日期:2013-09-02 16:44:31摩羯座
日期:2013-09-25 09:33:52双子座
日期:2013-09-26 12:21:10金牛座
日期:2013-10-14 09:08:49申猴
日期:2013-10-16 13:09:43子鼠
日期:2013-10-17 23:23:19射手座
日期:2013-10-18 13:00:27金牛座
日期:2013-10-18 15:47:57午马
日期:2013-10-18 21:43:38
65 [报告]
发表于 2012-09-29 08:41 |只看该作者
都不需要睡觉的么

论坛徽章:
0
66 [报告]
发表于 2012-09-29 10:42 |只看该作者
OwnWaterloo 发表于 2012-09-29 04:46
回复 60# wwwsq

写我自己明白且读起来最顺畅的代码,对你来说可能疑惑重重。



“我自己明白且读起来最顺畅”

这可能就是你我水平的差异。你只能写你自己明白且读起来最顺畅的代码,而我能写大部分人明白且读起来最顺畅的代码。

之前我维护过一个晦涩的C模块,我重构之后,一个实习生也看得懂,能维护了。

要是你,估计还觉得那晦涩的代码很高明吧?


论坛徽章:
0
67 [报告]
发表于 2012-09-29 10:50 |只看该作者
本帖最后由 wwwsq 于 2012-09-29 11:09 编辑
starwing83 发表于 2012-09-29 06:47
回复 62# OwnWaterloo



有能力写出晦涩代码,其实是一种缺陷。因为这会无形之中让你不小心写出晦涩的代码,因为你了解那种晦涩的写法,所以你认为写出来也无所谓。但晦涩代码其实是劣质的代码。

以运算顺序来说,a?b:c的运算顺序,程序员最好是不知道。因为程序员如果不知道,就不会去利用运算顺序来写代码,而会老老实实的先运算好。
运算好再逻辑判断的代码,反而是好代码。

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
68 [报告]
发表于 2012-09-29 11:29 |只看该作者
wwwsq 发表于 2012-09-29 10:42
“我自己明白且读起来最顺畅”

这可能就是你我水平的差异。你只能写你自己明白且读起来最顺畅的代码,而我能写大部分人明白且读起来最顺畅的代码。

之前我维护过一个晦涩的C模块,我重构之后,一个实习生也看得懂,能维护了。

要是你,估计还觉得那晦涩的代码很高明吧?


晦涩的代码根本就不差在哪几个运算符上。就因为几个运算符就被难倒了,水平是得有多次?
实习生连看不懂难道不是因为他是实习生自己水平次的错?  这年头都喜欢反客为主毁三观?

你我差异就是,我对:
1. 用与不用哪些人的代码
2. 按何种方式写代码
3. 允许、禁止哪些人参与我的项目
都有选择权而你没有。

实习生?连几个运算符都看不懂的实习生就该一边玩蛋去。你敢交给他们维护?也难怪那代码成天出纰漏了。

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
69 [报告]
发表于 2012-09-29 11:36 |只看该作者
回复 67# wwwsq

这一个a?b:c得有多晦涩?连这都不知道,也配称C程序员?也敢把代码交给他维护?


关于你所谓的好代码、坏代码:
sacry 发表于 2012-09-28 16:16
回复 12# 清华弟弟

你有个很脑残的地方,
当别人在讨论对错的时候,你只是在试图用你自己的审美来影响别人。

所谓学语言就是为了做实际项目,请问你是指去努力当个码农?我就喜欢研究标准玩,怎么了?
所谓看到更高的,请问你多高了?整个天朝IT领域都没见什么惊喜,要你跳出来告诉别人怎么做才能当大师拿图灵奖?

PM说错了你尽管去打脸,
但你这种"xxx不该怎么样,xxx就该怎么样"的,只是你个人审美问题,少当真理来强迫别人。

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
70 [报告]
发表于 2012-09-29 11:42 |只看该作者
回复 67# wwwsq


    你怎么知道我写出来的代码就是真的晦涩了?

就比如说,玩DoTA的APM要过200才是职业的(我不玩DoTA,乱说的,但是肯定对APM有要求),那么对职业DoTA选手来说,过200是非常合理的要求,是职业素养。难道你非得把自己APM降到200以下去迁就不合格的DoTA选手?这可能吗?

如果你说这是比赛,你不服,好,我换个例子。一群数学家用海德堡编码的形式学证明某样东西,一个初学者看不懂,你说这是初学者的错还是数学家的错?

我认为我自己是个合格的计算机编程从业者。我十分了解这个行业对于代码的质量需求,我也了解我使用的工具(C语言),我为什么要迁就那些考试只得60分的人的水平??

我们以前招实习生通常是我去面试,语法知识烂点不要紧,但是编译器都不会用的肯定是从没写过代码的人。这种人做开发你放心?短路运算的明显是没用过这个功能的人,这种人你放心?我小学五年级用BASIC写小游戏玩,写完以后惊奇的发现课本上几乎所有的知识点全用上了。C明显比BASIC复杂多了,我不求你都精通,也不求你都知道,但是那些平时几乎每次写代码都得用的东西你得知道吧?如果一个C初学者连&和|的含义都分不清楚(我高二的时候也分不清楚,背了一个月才熟悉,因为BASIC里面都是英文and和or,当时还抱怨过C语言晦涩),你又有什么理由招他进来???

我的第一家单位有个同事,人很可爱,我们都很喜欢他,姓曾,我们都叫他曾哥。他特别怕我们主管,后来还是离职了。原因是主管让他写代码,他不会,在那里看了一下午的教程,然后主管问他进度他说他还在学,主管说“我们招你来,是让你来工作的,不是让你来学习的!”结果后来曾哥一见到主管来就怕。

如果一个人不能胜任这个岗位,你要做的不是降低这个岗位的工作难度,是找一个能胜任的人做这个事情!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP