我在ROS kobuki节点(kobuki-auto-docking)中看到了这个C ++函数。我想知道是不是死的代码?或者,有时它可能会被称为某种神秘的原因吗?
void AutoDockingROS::spin()
{
return;
while(!shutdown_requested_){;}
}
感谢您的帮助,
答案 0 :(得分:5)
在C ++中,return
执行后没有任何内容。
但是,你应该始终尊重你面前的代码:
如果预处理器#define
s return
用于特别奇怪的构建配置,则代码可以运行。
有人可能会盲目地将代码移植到Java。在Java中,finally
块中的代码在return
之后运行。
开发人员可能会保留该行来测试!shutdown_requested_
所有不太可能的场景(顺便说一下,我已经看过第一个在制作中),但是值得检查一下你是否要进行大量的重构工作。
答案 1 :(得分:3)
return
语句之后的所有内容永远不会被执行。
答案 2 :(得分:3)
相当于:
void AutoDockingROS::spin()
{
return;
// while(!shutdown_requested_){;}
}
实际上,程序员想在那里留下一些代码,或许可以作为提醒。它永远不会被执行。
答案 3 :(得分:2)
返回后没有人可以调用代码......好吧也许只有Chuck Norris可以......
答案 4 :(得分:0)
return
语句之后无法执行任何操作,直到条件为止。将代码放在return
语句上方。