C 每个案例后的 Switch-case 花括号

标签 c switch-statement

在 C switch-case 流程控制中,如果在 case 中定义变量,则需要在 case那个街区。

无论变量声明如何,在每个 case 之后放置花括号是否是一种不好的做法?

例如:

switch(i) {
  case 1: {
    int j = 4;
    ...code...
  } break;

  case 2: {  //No variable being declared! Brace OK?
    ...code...
  } break;
}

最佳答案

在每个 case block 中使用大括号当然不是无效的,也不一定是不好的风格。如果由于变量声明而导致某些 case block 带有大括号,则在其他 case block 中添加大括号可以使编码风格更加一致。

话虽如此,在直接 C 的 case block 内声明变量可能不是一个好主意。虽然您的编译器可能允许这样做,但可能有更简洁的解决方案。互斥的 case block 可能能够共享几个公共(public)临时变量,或者您可能会发现您的 case block 作为辅助函数会更好地工作。

关于C 每个案例后的 Switch-case 花括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39621305/

相关文章:

编译错误 : ini_dump. c :(. text+0xde): 未定义对 ini_parse 的引用

java - 有人可以解释一下这个 switch 语句的行为吗?

java - 在递归方法中返回值是如何工作的? [Java]

ruby-on-rails - View 中的 Rails 开关案例

c - 像这样初始化一个数组 pass2[2] ="aa";不起作用

c - memcmp 只适用于字符串吗?

c - 格雷厄姆的 3D 扫描,查找一般多边形的面积

c - 在 C 中调整数组大小

Java switch case 语句 - 一个 case 的多个条目

php - 使用php加载脚本的效率如何?