概述
在C/C++中大括号指明了变量的作用域,
在大括号内声明的局部变量其作用域自变量声明开始,到大括号之后终结。
{ } 里的内容是一个“块”,单独的{ }在执行顺序上没有改变,仍然是顺序执行,
例子1
void MyProcess(MyType input, MyType &output) { MyType filter = input; {
MyType temp; step1(filter,temp); } { MyType temp;
step2(filter,temp); } { MyType temp; step3(filter,temp); }
output = filter; }
以上程序实现了简单的管道/过滤器结构:
temp1 temp2 temp3
↓ ↓ ↓
input --> step1 --> step2 --> step3 --> output
temp都是临时变量,
如果没有大括号的约束,每个临时变量都存在于函数作用域中,那么频繁增减流程时出错的概率大大增加。
放在大括号中,不仅程序阅读起来很清楚,而且也不容易出错
例子2
{ int a=0; { int b=0; a=1; //正确,还在a的作用域中 } b=1; //错误,因为不在b的作用域,b已经被销毁了 }