免费注册 查看新帖 |

Chinaunix

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

[C] 在《C程序设计伴侣》的交通灯例子中,我为什么没有使用解读专家的所谓更聪明的方法 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2012-10-23 11:00 |只看该作者
留名
拿分
走人

论坛徽章:
0
12 [报告]
发表于 2012-10-23 11:02 |只看该作者
我很想知道大神是做什么工作的?

论坛徽章:
0
13 [报告]
发表于 2012-10-23 19:29 |只看该作者
方法一:
if(red == light)
    puts("STOP"; // 停止
// 如果交通灯是绿色
else if( green == light )
    puts("Go!Go!Go!"; // 继续前行

方法二:
if(red == light)
    puts("STOP";
if( green == light )
    puts("Go!Go!Go!";

我想说的是方法一平均性能更好,楼下,你怎么看?

论坛徽章:
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
14 [报告]
发表于 2012-10-23 19:52 |只看该作者
回复 13# ah_kevin


    你似乎忘了有个东西叫”编译器优化“

论坛徽章:
0
15 [报告]
发表于 2012-10-23 19:54 |只看该作者
依赖编译器的程序员不是好程序员。

论坛徽章:
0
16 [报告]
发表于 2012-10-23 20:11 |只看该作者
实在受不了啦,楼上的几位成心把本人这种初学者往沟里带。有啥呀,叔放狗搜了C的语法,再结合不多的小学算术知识,写了下面几句,看到黄灯了吗?别以为叔只在考前看了7天的谭书,但有狗想变出黄灯还是简单的。
  1. enum trafficlight
  2. {
  3.         red = 0,    // 红色
  4.         green,      // 绿色
  5.         yellow
  6.     };
复制代码
  1. int light = rand()%3;
复制代码

论坛徽章:
59
2015年亚洲杯之约旦
日期:2015-01-27 21:27:392015年亚洲杯之日本
日期:2015-02-06 22:09:41拜羊年徽章
日期:2015-03-03 16:15:432015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015元宵节徽章
日期:2015-03-06 15:50:392015年亚洲杯之阿联酋
日期:2015-03-19 17:39:302015年亚洲杯之中国
日期:2015-03-23 18:52:23巳蛇
日期:2014-12-14 22:44:03双子座
日期:2014-12-10 21:39:16处女座
日期:2014-12-02 08:03:17天蝎座
日期:2014-07-21 19:08:47
17 [报告]
发表于 2012-10-24 08:40 |只看该作者
回复 13# ah_kevin


    "else if" is better.

"else" may help you to read a millon of code,
while you try to "trace" one routine of code, hunders of "if" that without "else" (while it is actually needed) may trouble you.
you must check each or than to identify that this "if" is the part of you care about now.

论坛徽章:
59
2015年亚洲杯之约旦
日期:2015-01-27 21:27:392015年亚洲杯之日本
日期:2015-02-06 22:09:41拜羊年徽章
日期:2015-03-03 16:15:432015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015元宵节徽章
日期:2015-03-06 15:50:392015年亚洲杯之阿联酋
日期:2015-03-19 17:39:302015年亚洲杯之中国
日期:2015-03-23 18:52:23巳蛇
日期:2014-12-14 22:44:03双子座
日期:2014-12-10 21:39:16处女座
日期:2014-12-02 08:03:17天蝎座
日期:2014-07-21 19:08:47
18 [报告]
发表于 2012-10-24 08:41 |只看该作者
each or than  -->
eacho of them

论坛徽章:
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
19 [报告]
发表于 2012-10-24 16:40 |只看该作者
回复 15# ah_kevin


    你不依赖编译器?你人肉编译?

应该说,过度依赖编译器是不好的。

但是,明知道两个写法有一样的效果,并且这个效果是基于标准的,并且这两个语句之间的效率差别人眼根本看不出来,并且编译器可能把他们实现为一样的汇编——

——你又有什么理由在这里花费这么多精力判断哪个好呢……

论坛徽章:
0
20 [报告]
发表于 2012-10-24 19:21 |只看该作者
妈呀!
// 在我看来,这样写很危险
// 如果light为yellow呢?
我仔细看了陈大湿写的完整代码,不知道是不是我眼搓,没发现 yellow。陈大湿是怎么说出这话来的?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP