问题:
各位大侠,我公司的软件在运行的时候,偶尔会出现自动关闭软件的问题,起初以为是电脑病毒的影响,后来很多客户都反映这个问题。
我在阅读代码的时候发现了个问题,问题程序段如下:
function(...)
{
...
if(...)
{
switch(...)
{
case ..:
break;
...
default:
return;
}
}
else
{
// 实现了一段操作;
}
}
在default里面的操作是:return,我想请问,在这里用renturn而不用break会导致程序非正常退出吗????
解答:
不会
从编译器原理上, default 后面的return,实际是一个跳转语句,直接跳转到本函数的最后一个语句
如果有return语句,则是return, 否则是该函数的最后一个大括号'{'
自己可以设置断点跟踪,编译一个小函数就可以测试到。