在C ++函数中返回语句后的指令

时间:2014-12-16 16:31:58

标签: c++ ros

我在ROS kobuki节点(kobuki-auto-docking)中看到了这个C ++函数。我想知道是不是死的代码?或者,有时它可能会被称为某种神秘的原因吗?

void AutoDockingROS::spin()
{
    return;

    while(!shutdown_requested_){;}
}

感谢您的帮助,

5 个答案:

答案 0 :(得分:5)

在C ++中,return执行后没有任何内容。

但是,你应该始终尊重你面前的代码:

  1. 如果预处理器#define s return用于特别奇怪的构建配置,则代码可以运行。

  2. 有人可能会盲目地将代码移植到Java。在Java中,finally中的代码return之后运行。

  3. 开发人员可能会保留该行来测试!shutdown_requested_

    的语法有效性
  4. 所有不太可能的场景(顺便说一下,我已经看过第一个在制作中),但是值得检查一下你是否要进行大量的重构工作。

答案 1 :(得分:3)

return语句之后的所有内容永远不会被执行。

答案 2 :(得分:3)

相当于:

void AutoDockingROS::spin()
{
    return;

    // while(!shutdown_requested_){;}
}

实际上,程序员想在那里留下一些代码,或许可以作为提醒。它永远不会被执行。

答案 3 :(得分:2)

返回后没有人可以调用代码......好吧也许只有Chuck Norris可以......

答案 4 :(得分:0)

return语句之后无法执行任何操作,直到条件为止。将代码放在return语句上方。