use*_*925 6 c syntax formatting
我遇到了一些包含几个代码块的代码,用花括号括起来{}.在代码块之前没有行将它们标记为if语句,函数定义或其他任何内容的一部分.只是一个浮动在函数中间的代码块.这有什么意义吗?gcc通过代码似乎非常高兴; 我只能想象这是允许原始编码器在视觉上分割功能块的某种方式......
Ste*_*sop 11
它创建了一个范围.块内是否定义了自动变量?如果是这样,那么这些变量的范围仅限于块.它对于您不希望污染函数的其余部分的临时变量很有用,并且在编写C89时也很有用,其中变量定义必须位于块的开头.
所以,而不是:
int main() {
int a = 0;
int b;
int i;
for (i = 1; i < 10; ++i) {
a += i;
}
b = a * a;
// do something with a and b
}
Run Code Online (Sandbox Code Playgroud)
你可以有:
int main() {
int a = 0;
{
int i;
for (i = 1; i < 10; ++i) {
a += i;
}
}
{
int b = a * a;
// do something with a and b
}
}
Run Code Online (Sandbox Code Playgroud)
显然,如果你这样做,你还必须问自己这些块是否会作为单独的功能更好.