一个小程序重新透视C语言Switch语句
来源:互联网 发布:python 性能测试脚本 编辑:程序博客网 时间:2024/06/05 23:40
最近看berkerly DB的源代码,在hash函数的hash4中一段代码让我很困惑,将其简化如下:
/*ctest.c*/
void testSwitch(int sw){
int loop = 3;
switch(sw){
case 0:
do{
printf("case 0:%d/n",loop);
case 7:
printf("case 7:%d/n",loop);
case 6:
printf("case 6:%d/n",loop);
case 5:
printf("case 5:%d/n",loop);
case 4:
printf("case 4:%d/n",loop);
case 3:
printf("case 3:%d/n",loop);
case 2:
printf("case 2:%d/n",loop);
case 1:
printf("case 1:%d/n",loop);
}while(--loop);
}
}
int main()
{
testSwitch(4);
return 0;
}
程序的输出为
case 4:3
case 3:3
case 2:3
case 1:3
case 0:2
case 7:2
case 6:2
case 5:2
case 4:2
case 3:2
case 2:2
case 1:2
case 0:1
case 7:1
case 6:1
case 5:1
case 4:1
case 3:1
case 2:1
case 1:1
这表明switch语句确实就是使用了goto跳转,所以可以将case植入到其它语句中,如本例中的while语句;case本身就是一个标签;
分析完这段代码,我翻看了以前搞到手的C puzzles,发现其中已经收录了这一puzzle,以前嫌麻烦,懒的看,需要用时才发现。学习源代码!
- 一个小程序重新透视C语言Switch语句
- C语言switch语句
- C 语言 switch 语句
- C语言switch语句
- C语言switch语句
- C 语言 switch 语句
- 一个C语言小程序
- 由一个switch语句理解c语言中getchar函数
- C语言switch语句详解
- C语言 switch 语句用法
- C语言中的switch语句
- 6.3 C语言switch语句
- 54 C语言switch语句
- 【C语言】switch..case语句
- 关于C语言的一个小程序
- 一个简单的C语言小程序
- switch 语句的一个小谜团
- 关于switch语句的一个小代码
- 自己编写的Java Swing 时钟 比较繁琐 请指教
- 使用iexpress制作控件本地安装程序
- SuperMap IS.NET项目互联网发布IP设置
- Clutter使用的问题总结
- lucene整理4 -- 各种Query
- 一个小程序重新透视C语言Switch语句
- 从今天开始
- 转]EBS中客户化表结构的设计原则
- VC tab control 使用简单例子
- [转]如何写出专业的C头文件
- Luncene 之二 查询
- MATLAB GUI一点点体会
- SOCKET类的设计和实现
- 2_2 序列和选择