不好意思, 挖坟了. 不过我最近再学习了一些关于switch的知识, 发现这个说法不
大正确.
On 14/4/27 上午10:42, Yeechan Lu wrote:
只有语句前面才才能带标号, 声明前面不能带标号, 所以
花括号其实是为了定义变量……
加上了花括号的话,里面的变量只在这个花括号里有用。
case 1:{int a;break;}
case 2:{int a;break;}
否则就得
case 1:int a;break;
case 2:int b;break;
值得注意的是,C85 里是不允许在任意地方定义变量的,必须放在一个复合语句 的起始部分。
On Apr 27, 2014 9:15 AM, "Shuai Meng" <mengshuaicalendr@xxxxxxxxx <mailto:mengshuaicalendr@xxxxxxxxx>> wrote:
请教一下大家,如果case和对应的break之间有多个语句,需要用花括号吗?
比如这个:
1243 case VT_EMPTY:
1244 V_VT(res) = VT_I1;
1245 V_I1(res) = 0;
1246 break;
编译是通过的。
但是这个:
1250 case VT_I4: {
1251 HRESULT hres;
1252 int tmp;
1253
1254 hres = to_int(arg, &tmp);
1255 if (FAILED(hres))
1256 return hres;
1257 V_VT(res) = VT_I4;
1258 V_I4(res) = tmp >= 0 ? tmp : -tmp;
1259 break;
1260 }
就不好说了。