今天为同事进行代码审查时,我看到了一个奇怪的东西。他用花括号包裹了他的新代码,就像这样:
Constructor::Constructor()
{
// Existing code
{
// New code: do some new fancy stuff here
}
// Existing code
}
这样做会有什么结果(如果有的话)?为什么要这样做?这个习惯从哪里来?
这是嵌入式设备的环境。有很多用C++“包装”起来的遗留C代码。也有很多从C转到C++的开发人员。
在这部分代码中没有临界区。我只在这部分代码中见过它。没有进行重要的内存分配,只设置了一些标志位和进行了一些位操作。
被花括号包围的代码类似于:
{
bool isInit;
(void)isStillInInitMode(&isInit);
if (isInit) {
return isInit;
}
}
(不要在意代码,只需关注花括号... ;) )
花括号后面还有一些位操作、状态检查和基本信号传递。
我跟那个人谈过,他的动机是限制变量范围、命名冲突以及其他我无法理解的问题。
从我的角度来看,这似乎非常奇怪,我认为我们的代码中不应该有花括号。我看到所有答案中都有一些很好的例子说明为什么可以用花括号包含代码,但难道不应该将代码分成方法吗?
fsdf