c - 对于 switch 语句的情况,在局部 block 中定义变量是个好主意吗?

标签 c variables switch-statement

我有一个相当长的 switch-case 语句。有些案例真的很短而且微不足道。一些更长,并且需要一些从未在其他任何地方使用过的变量,如下所示:

switch (action) {
    case kSimpleAction:
        // Do something simple
        break;
    case kComplexAction: {
        int specialVariable = 5;
        // Do something complex with specialVariable
      } break;
}

另一种方法是在进入 switch 之前声明该变量,如下所示:

int specialVariable = 5;
switch (action) {
    case kSimpleAction:
        // Do something simple
        break;
    case kComplexAction:
        // Do something complex with specialVariable
        break;
}

这会变得相当困惑,因为不清楚变量属于哪个 case 并且它使用了一些不必要的内存。

但是,我从未在其他任何地方看到过这种用法。
您认为针对单个 case 在 block 中局部声明变量是个好主意吗?

最佳答案

如果在 switch block 之后没有使用 specialVariable,则在“case” block 中声明它。

一般来说,变量应该在它使用的尽可能小的范围内声明。

关于c - 对于 switch 语句的情况,在局部 block 中定义变量是个好主意吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2595111/

相关文章:

ios - plist 中的变量替换 - 我可以定义一次值并在手动维护的 plist 中重用它吗?

python - 如何获取脚本中使用的所有变量和方法名称

php - 变量还是常量?

c - 如何计算 switch case 中的薪水?然后为不同的利率添加一个 if 语句?

linux - get_current() 在此内核模块中返回什么?

c - TCP 套接字读/写卡住服务器

java - system.in.read 未执行

c - switch 语句终止后不会重新启动

c - C : tee command produces empty file 中的管道

c - 我怎样才能终止系统()?