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/4241545/

相关文章:

c - 错误 "Segmentation fault (core dumped)",错误在哪里?

c - 动态分配文件指针数组

java - 用户选择的选项不会触发if语句

android - Android中的随机数

c# - 能否在 switch 语句中使用多个值 (C#)

c++ - cin 和 switch 奇怪的行为

c - 编程新手。需要帮助调整代码以允许不确定数量的学生

c - 适用于 ARM Mac M1/M2 的 __rdtsc/__rdtscp?

c++ - libjpeg/libjpeg-turbo RGBA/32位int解压缩

java - 大小写类型(带返回值的开关)