switch语句中在case块里声明变量会遇到提示“Expected expression before..."的问题
例如在如下代码中
1 | case 0: |
2 | int index = 1; |
3 | int j = 2; |
4 | self .sum = i + j; |
5 | break ; |
GCC在case语句之后的第一行中声明变量时遇到问题。
这时需要在case块两端添加花括号,GCC就变乖了。
即:
1 | case 0:{ |
2 | int index = 1; |
3 | int j = 2; |
4 | self .sum = i + j; |
5 | break ; |
6 | } |
结论:
switch语句中不能声明变量,并不是赋值问题。
其它的语句块没这个限制,switch语句中用的变量必须在块外声明,或者在case:{}花括号里面声明变量。