单片机C语言编程中goto语句和中断连用会出错吗?

单片机里的中断函数,不能与主函数连用,goto语句不能在不同的函数体里使用,就是说在中断函数里放goto不能跳转到其他非中断函数体里做相应的指令。例如:
void BeepTimer0(void) interrupt 1
{
goto loop1;
}
void main()
{
loop1:
...
}
此语句是错误的,因为goto语句不能在不同的函数体里使用。

第1个回答  2010-11-26
使用goto语句很容易出错,
如果是想 在进入一个中断之后想再进入到另一个中断
可以在中断函数里设置中断优先级 即中断优先级的切换 ,需要控制寄存器 IP
第2个回答  2010-11-26
中断连用是指中断嵌套吗?
中断嵌套的话,未返回的中断不能再次被触发,你不能在一个中断里再次响应本中断或者优先级低于本中断的中断。
第3个回答  2010-11-27
这个的意思是ok1如果为真的话,即ok1不为0的话,
就执行if下面的语句,
否则就不执行if语句
第4个回答  2010-11-26
最后goto会iret就好了。
goto最好是在功能模块内部使用,这样一般不会出错
第5个回答  2010-11-26
goto是无条件转移,没有返回;中断?是break吗?它是在循环中跳出时使用的,连着使用没有什么,但是需要考虑逻辑关系。例子如下:
1:XXXXXXXX
XXXXXXXX
goto 3
2:XXXXXXXX
while(XX)
XXXXXXXX
break;
3:XXXXXXXX
条件满足会转跳到3,否则在2中循环直到溢出while条件本回答被提问者和网友采纳