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

[复制链接]
7129|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..
李冬发 发表于 2010-11-12 10:40 | 显示全部楼层
那你只好再多看几遍C语言基础了。特别是goto语句和标号的章节。
yewuyi 发表于 2010-11-12 12:36 | 显示全部楼层
LZ,你见过FOR循环有这么写的吗?

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

IAR下肯定可以用GOTO,你首先需要弄清楚C语言的一些基础。
zdhlixiang2006 发表于 2010-11-12 20:49 | 显示全部楼层
for(;;)相当于while(1)
李冬发 发表于 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//低功耗处理语句
    }
}
 楼主| jack.king 发表于 2010-11-14 15:48 | 显示全部楼层
谢谢李大哥!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

488

主题

2158

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部