C专家编程_2.2
switch 的break 问题
network code()
{
switch(line)
{
case THING1:
doit1();
break;
case THING2:
if(x == STUFF)
{
do_first_stuff();
if(y == OTHER_STUFF)
break;
do_later_stuff();
} /* 代码意图是跳到这里 */
initialize_mode_pointer();
break;
default:
processing();
} /* 实际上跳到了这里 */
use_mode_pointer(); /* 致使mode_pointer 未初始化 */
}
C专家编程之switch-break详解
本文深入探讨了C语言中switch-case语句的break关键字使用误区,通过具体代码示例,详细分析了在复杂条件判断下break的作用及可能引起的程序逻辑错误。文章指出,在特定情况下,若内部if语句中的break未正确处理,可能导致预期外的行为,如变量未初始化即被使用,从而引发运行时错误。
1900

被折叠的 条评论
为什么被折叠?



