免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3125 | 回复: 14
打印 上一主题 下一主题

关于SWITCH [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-11-23 21:30 |只看该作者 |倒序浏览
SWITCH在内存里是什么样子的?是在栈里吗?是不是一个表,有个指针指向表头,然后CASE0就是表的第1个位置,以此类推?SWITCH中里面的参数在哪里?
另外求个C和C++标准库里有些什么函数的文档

论坛徽章:
2
技术图书徽章
日期:2013-09-04 15:21:51酉鸡
日期:2013-11-01 21:20:20
2 [报告]
发表于 2010-11-23 21:50 |只看该作者
SWITCH在内存里是什么样子的?是在栈里吗?是不是一个表,有个指针指向表头,然后CASE0就是表的第1个位置,以此类 ...
lonerwolf 发表于 2010-11-23 21:30



switch等同于

if a
  ...
  goto
if b
  ...
  goto
if c
  ...
  goto

论坛徽章:
0
3 [报告]
发表于 2010-11-23 21:51 |只看该作者
回复 2# mirnshi


    {:3_183:} 竟然是这样子....还以为比较有效率还想写几十个CASE.......

论坛徽章:
2
技术图书徽章
日期:2013-09-04 15:21:51酉鸡
日期:2013-11-01 21:20:20
4 [报告]
发表于 2010-11-23 21:57 |只看该作者
回复  mirnshi


     竟然是这样子....还以为比较有效率还想写几十个CASE.......
lonerwolf 发表于 2010-11-23 21:51


一般处理无所谓。BTW,能用到几十个case,也是强人一个。

论坛徽章:
0
5 [报告]
发表于 2010-11-23 22:17 |只看该作者
回复 4# mirnshi


    其实是一个配置文件有几十个选项,我在想怎么处理,读入1个就去CASE,还是设置很多变量来保存读入,最后通过变量判断.其实我又想该不该把配置文件散列后,通过名字访问判断

论坛徽章:
0
6 [报告]
发表于 2010-11-23 22:27 |只看该作者
1. 几十条C的基本语句,对于计算机来说等于浮云,1us以内搞定不是问题,而且配置文件不会一直读,没什么特殊要求性能问题不大
2. switch很多时候都可以是内存跳转表,参考一下比如AMD的优化文档可以找到类似描述。反汇编也可以证实
3. 只有无法翻译成跳转表的时候才是if else if 这样的东西。

论坛徽章:
0
7 [报告]
发表于 2010-11-24 09:22 |只看该作者
回复 6# jerryz920


   弓虽 !

论坛徽章:
0
8 [报告]
发表于 2010-11-24 12:46 |只看该作者
一般处理无所谓。BTW,能用到几十个case,也是强人一个。
mirnshi 发表于 2010-11-23 21:57



    几十个case的也很常见,通信行业的代码很多都是这样的。

论坛徽章:
0
9 [报告]
发表于 2010-11-24 13:30 |只看该作者
bison生成的C文件有几千个case

论坛徽章:
2
白羊座
日期:2013-11-18 19:52:42辰龙
日期:2014-09-07 07:46:06
10 [报告]
发表于 2010-11-24 17:46 |只看该作者
bison生成的C文件有几千个case
marxn 发表于 2010-11-24 13:30



    如果没有注释,直接吐血!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP