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:{}花括号里面声明变量。

本文探讨了在switch语句中直接声明变量时遇到的编译错误,并提供了解决方案,即通过添加花括号来定义局部作用域。
5717

被折叠的 条评论
为什么被折叠?



