如果需要为某个case分支定义并初始化一个变量,我们应该把变量定义在块内,从而确保后面的所有case标签都在变量的作用域之外。
case true: { // 正确,声明语句位于语句块内部 string file_name = get_file_name(); // …… } break; case false: if(file_name.empty()) // 错误,file_name不在作用域内
如果需要为某个case分支定义并初始化一个变量,我们应该把变量定义在块内,从而确保后面的所有case标签都在变量的作用域之外。
case true: { // 正确,声明语句位于语句块内部 string file_name = get_file_name(); // …… } break; case false: if(file_name.empty()) // 错误,file_name不在作用域内