int main()
{
int f=fun();
...
}
int fun()
{
return 1;
return 2;
}
在上面的程序中,当从主函数调用一个函数并且该函数包含两个return语句时,
答案 0 :(得分:6)
程序控制从不到达return 2;
,优化的编译器将其删除。
我所知道的唯一一种疯狂的语言足以使两个return
语句到达Java:
try {
return 1; // this is evaluated
} finally {
return 2; // this is the one actually returned
}
答案 1 :(得分:0)
如果您确信 return 语句与诸如 RTS 的程序集操作码(“从子例程返回”)相对应,则该程序操作码使用调用之后的指令地址,显然第二条return语句永远不会执行。