打印

MPLAB XIDE的使用问题

[复制链接]
13239|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
flycamelaaa|  楼主 | 2021-9-16 15:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
IDE, mplab, se, ce, AC, tc
MPLAB X IDE里面,switch语句在case后面不能使用变量吗
switch(Displacement[5])
    {
        case Displacement[0]:
            Run_Section = 0;//加加速段
        break;

像上面这样,报错如下
Interrupt.c:297:9: error: case label does not reduce to an integer constant
         case Displacement[0]:
我记得有些编译器都可以这样用的呀,MPLAB不允许这样吗

使用特权

评论回复
沙发
laocuo1142| | 2021-9-16 15:55 | 只看该作者
case 后面跟变量不行吧,跟逻辑条件是可以的.

使用特权

评论回复
板凳
powerantone| | 2021-9-16 15:56 | 只看该作者

印象中case是不可以用变量,只能用整形数进行判断,这样编译器可以产生高效的优化代码,否则不如直接用 if-else了。

使用特权

评论回复
地板
stormwind123| | 2021-9-16 15:56 | 只看该作者

用常量

使用特权

评论回复
5
cyclefly| | 2021-9-16 19:37 | 只看该作者
貌似不能

使用特权

评论回复
6
lss1330| | 2021-11-2 21:58 | 只看该作者
switch(Displacement[5])
    {
        case Displacement[0]: {
            int xxx = 0;
            Run_Section = 0;//加加速段
        }break;


在冒号后边加花括号“{}”

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

667

主题

2852

帖子

0

粉丝