很抱歉,如果这是一个重复的帖子,因为我甚至不知道用于搜索它的正确字词。
我可以看到一些看起来像这样的c ++代码:
void start()
{
if (call(initialize())) return;
{
// the rest of the code runs here
}
terminate();
}
我是否遗漏了某些内容,或者是否只是讨厌那些必须阅读此代码的其他人的代码混淆?
答案 0 :(得分:3)
我错过了什么
不是,不。
对于那些讨厌必须阅读此代码的其他人来说,这只是代码混淆吗?
那,或者是一个错误(例如,丢失else
,或者return;
不应该存在)。
如果块中的代码确实需要在一个块中(这当然不是不可能的 - 这是控制范围的常用方法),那么它至少应该是一个空白链接以明确它与if
语句无关。
代码可能更好地编写如下:
void start()
{
if (call(initialize()))
return;
{
// stuff in a block
}
terminate();
}
即使在这里,我几乎肯定会在块范围内包含一个适当的注释,以解释为什么它是必要的(如果不是不言自明的),并反过来隐含地重新确认它不是if
/ else
链的某些意外错误格式化。