首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >函数中有两个返回语句,哪个返回语句将执行?

问函数中有两个返回语句,哪个返回语句将执行?
EN

Stack Overflow用户
提问于 2018-06-25 13:02:53
回答 2查看 287关注 0票数 0
代码语言:javascript
复制
int main()
{  
   int f=fun();
   ...
}
int fun()
{
   return 1;
   return 2;
}

在上面的程序中,当从主函数调用一个函数并且函数包含两个返回语句时,

  1. 两个返回语句都会执行吗?否则
  2. 如果只执行一条返回语句,为什么?那么,是否执行另一条返回语句呢?
EN

回答 2

Stack Overflow用户

发布于 2018-06-25 13:03:57

程序控制永远不会到达return 2;,优化的编译器将删除它。

我所知道的唯一一种足够疯狂的语言是能够达到两个return语句的Java:

代码语言:javascript
复制
try {
    return 1; // this is evaluated
} finally {
    return 2; // this is the one actually returned
}
票数 6
EN

Stack Overflow用户

发布于 2018-06-25 13:15:57

如果您还记得返回语句对应于程序集操作代码(“从子例程返回”),该操作代码设置了程序计数器的值,并在调用后使用指令的地址,那么很明显,第二个返回语句永远不会执行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51024142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档