打印

请问IAR MSP430上面怎么不能用GOTO语句

[复制链接]
6282|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jack.king|  楼主 | 2010-11-11 18:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请问IAR MSP430上面怎么不能用GOTO语句 这2两天在给别人搞东西 ,不知道怎么不能用GOTO语句,

程序如下
void main(void)
{
   Init_sys();
  for(;;)
  {
   start:
       1,2,3,//主处理程序
    goto:start;
   sleep:
       1,2,3//低功耗处理语句
  }
}
这么处理总是有报警
报警如下:
Error[Pe040]: expected an identifier

Warning[Pe177]: label "start" was declared but never referenced

Error while running C/C++ compiler

我现在的处理方法是这样
void main(void)
{
   Init_sys();
  for(;;)
  {

       1,2,3,//主处理程序

    if(需要低功耗)
    break;
  }
sleep:
       1,2,3//低功耗处理语句

}

相关帖子

沙发
李冬发| | 2010-11-11 18:20 | 只看该作者
你的start定义在哪?

使用特权

评论回复
板凳
jack.king|  楼主 | 2010-11-11 20:04 | 只看该作者
请问李冬发大哥,这个START还要定义 吗?
不能直接放到函数内部码?我没有定义 就直接放的 其他软件好像不用啊 !

使用特权

评论回复
地板
zdhlixiang2006| | 2010-11-11 21:59 | 只看该作者
本人很讨厌用 start: ...goto..

使用特权

评论回复
5
李冬发| | 2010-11-12 10:40 | 只看该作者
那你只好再多看几遍C语言基础了。特别是goto语句和标号的章节。

使用特权

评论回复
6
yewuyi| | 2010-11-12 12:36 | 只看该作者
LZ,你见过FOR循环有这么写的吗?

不要拿汇编的方式来写C 。

IAR下肯定可以用GOTO,你首先需要弄清楚C语言的一些基础。

使用特权

评论回复
7
zdhlixiang2006| | 2010-11-12 20:49 | 只看该作者
for(;;)相当于while(1)

使用特权

评论回复
8
李冬发| | 2010-11-14 10:07 | 只看该作者
看错了,start还真定义了。你的错在:

goto:start;
这句上。应改为
goto start;



for(;;)是可以的。

-------------
void main()
{
    Init_sys();
    for(;;)
    {
start:
        1,2,3,//主处理程序
        goto start;
sleep:
        1,2,3//低功耗处理语句
    }
}


void main()
{
    Init_sys();
    for(;;)
    {
        for(;;)
        {
            1,2,3,//主处理程序
        }

sleep:
    1,2,3//低功耗处理语句
    }
}

使用特权

评论回复
9
jack.king|  楼主 | 2010-11-14 15:48 | 只看该作者
谢谢李大哥!

使用特权

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

本版积分规则

488

主题

2158

帖子

1

粉丝