看到别人的代码中
while(xxx)
{
{
xxxx
}
}
这是某种特定要求的写法吗?
看到别人的代码中
while(xxx)
{
{
xxxx
}
}
这是某种特定要求的写法吗?
1
xiongjia Jul 4, 2018 |
2
inoki Jul 4, 2018 控制内部新声明变量生命周期和作用范围
比如 while (xxx) { { int i=0; i++; // OK } i=4; // Undefined identifier } |
3
bp0 Jul 4, 2018 其实是 C89 中只准许在作用域的开始处声明变量。所以如果想在函数中间中间定义变量,只能加大括号。当然副作用是从大括号出来以后变量就不能用了。就像#2 说的那样。
C99 以后可以随便定义了,不过为了兼容 C89 的编译器,所以大部分代码还是会使用大括号。 不过,在 while{的起始处是可以定义变量的,如果在前 2 个“{”之间没有语句,那么感觉中间的{}是没有意义的。 |