加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 为什么case语句只接受常量?

发布时间:2020-12-16 09:44:42 所属栏目:百科 来源:网络整理
导读:C中的switch语句必须用常量写的事实背后的原因是什么? 我们来看看下面的代码: switch(variable){ case 1: case 2: case 3: case 4: //Code 1 break; case 5: case 6: case 7: case 8: //Code 2 break; default: //Code 3 break;} 在其他语言中,例如PAWN(C-
C中的switch语句必须用常量写的事实背后的原因是什么?

我们来看看下面的代码:

switch(variable)
{
    case 1:
    case 2:
    case 3:
    case 4:
        //Code 1
        break;

    case 5:
    case 6:
    case 7:
    case 8:
        //Code 2
        break;

    default:
        //Code 3
        break;
}

在其他语言中,例如PAWN(C-Like脚本语言),我可以这样写下这段代码:

switch(variable)
{
    case 1 .. 4:
        //Code 1
        break;

    case 5 .. 8:
        //Code 2
        break;

    default:
        //Code 3
        break;
}

C switch语句背后的原因是什么?来自石器时代? (更不用说我们不能使用变量了.)

即使经过这么多年的这么多变化和更新……

解决方法

C switch语句无法更新为使用范围的技术原因. gcc已经有了这个扩展.

http://www.n4express.com/blog/?p=1225

价值保持不变是有充分理由的;允许各种优化,如跳转表.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读