免费注册 查看新帖 |

Chinaunix

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

两段完成同样功能的简单C代码 [复制链接]

论坛徽章:
0
21 [报告]
发表于 2008-03-24 22:48 |只看该作者

回复 #20 MMMIX 的帖子

感觉应该是这样!
可能不一定对.

[ 本帖最后由 newIT666 于 2008-3-24 22:49 编辑 ]

论坛徽章:
0
22 [报告]
发表于 2008-03-24 22:51 |只看该作者
原帖由 thorqq 于 2008-3-24 21:34 发表
在AIX下,如果判断分支比较少(5个以下),那if else会快一点
如果分支比较多,那switch的速度优势就出来了

说说道理和原因..

论坛徽章:
0
23 [报告]
发表于 2008-03-25 10:18 |只看该作者
原帖由 chzCPU 于 2008-3-24 22:51 发表

说说道理和原因..

期待中...

论坛徽章:
0
24 [报告]
发表于 2008-03-25 10:36 |只看该作者
这个问题没有意义,这两种都不是好的代码,有更好的方法。


有种方法叫做表驱动,做为程序员应当掌握。

论坛徽章:
0
25 [报告]
发表于 2008-03-25 10:48 |只看该作者

回复 #24 agaric 的帖子

具体讲讲一讲?

论坛徽章:
0
26 [报告]
发表于 2008-03-25 11:06 |只看该作者
基本没有区别.

如果硬说有, 有可能SWITCH快, 因为是和一个常数比较. 而IF是任意.

最快的方法是自己做:

比如
int tab[] = {0, 2, 9, 3, 2, 8, 5 };

f(int x)
{
y = tab[x];
}

论坛徽章:
0
27 [报告]
发表于 2008-03-25 12:04 |只看该作者
这年头码农都闲到比这个了。。。

论坛徽章:
0
28 [报告]
发表于 2008-03-25 14:27 |只看该作者

回复 #26 思一克 的帖子

顶, 学到新思路了。

论坛徽章:
0
29 [报告]
发表于 2008-03-25 14:36 |只看该作者

回复 #24 agaric 的帖子

:wink: x的取值相对连续可以用表,若跨度较大如: "x=1,5,8,1000,78888,..., other use f(x)  " 这个表构建起来的效率可能不比switch有优势!

论坛徽章:
0
30 [报告]
发表于 2008-03-25 15:28 |只看该作者

回复 #29 system888net 的帖子

若用hash表,是不是会快一些?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP