switch代码分析
2010-05-05 21:42
155 查看
switch(type)
{
case 0:
strcpy(btext[1],selType[type]);
case 1:
strcpy(btext[1],selType[type]);
case 2:
strcpy(btext[1],selType[type]);
}
switch(type)
{
case 0:
strcpy(btext[2],GetString(IDS_FE_NO));
case 1:
strcpy(btext[2],GetString(IDS_FE_YES));
}
上述的两段代码是在工作时,无意写出的,目的大于根据相应的type的值,将相应的值赋给btext[i];其中,第一个switch能很好的完成这个任务;但第二个switch总是显示的是IDS_FE_YES的值。
造成这种差距的原因在于,case执行时,会从匹配值处一直执行下去,第一个switch无论从何处开始执行,其btext[1]的值总是selType[type]的值,但第二个swicth,不同的type,赋给btext[2]的是不同的值,到最后,btext[2]的值将是最后一个case字符串中的值。
解决办法:每个case 后加break语句,截流。
注意:一般在最后要加上default处理方法。
{
case 0:
strcpy(btext[1],selType[type]);
case 1:
strcpy(btext[1],selType[type]);
case 2:
strcpy(btext[1],selType[type]);
}
switch(type)
{
case 0:
strcpy(btext[2],GetString(IDS_FE_NO));
case 1:
strcpy(btext[2],GetString(IDS_FE_YES));
}
上述的两段代码是在工作时,无意写出的,目的大于根据相应的type的值,将相应的值赋给btext[i];其中,第一个switch能很好的完成这个任务;但第二个switch总是显示的是IDS_FE_YES的值。
造成这种差距的原因在于,case执行时,会从匹配值处一直执行下去,第一个switch无论从何处开始执行,其btext[1]的值总是selType[type]的值,但第二个swicth,不同的type,赋给btext[2]的是不同的值,到最后,btext[2]的值将是最后一个case字符串中的值。
解决办法:每个case 后加break语句,截流。
注意:一般在最后要加上default处理方法。
相关文章推荐
- 32位汇编语言学习笔记(12)--分析switch语句的汇编代码
- opendaylight(Li) l2switch 源代码分析(1)--代码的整体结构和整体pom.xml
- IDA简单Switch-Case结构的汇编代码分析
- 进程切换(context_switch)代码分析:基本逻辑
- 详细分析contrex-A9的汇编代码__switch_to(进程切换)
- 具体分析contrex-A9的汇编代码__switch_to(进程切换)
- 图片二值化 opencv实现 代码及分析
- 恶意代码分析实战Lab0901
- 文本编辑器代码分析(续2)
- 【Nutch2.2.1源代码分析之4】Nutch加载配置文件的方法
- 20145221高其_恶意代码分析
- 线程相关代码分析->常见面试题(一、Thead类)
- linux 2.6源代码情景分析笔记之进程3
- GPRS MODEM应用场景有哪些 GPRS MODEM拨号错误代码分析
- 用perfmon简单分析GDI+性能和代码的一点小改进
- 浅谈SQL Server所实现创建分页功能的存储过程的分析及代码
- mac80211 代码分析
- Android 权限控制代码分析
- linux 2.6源代码情景分析笔记之进程9