单片机C语言中断中的return返回:

void hs(void) interrupt 2
{
if(xxxxx)return;
xxxxxx
xxxxxx
xxxxxx
}
这样是直接跳出中断函数,然后回到main()里面吗? xxxx代表一些语句
中断里面的return和调用函数里面的return有什么区别?

一、
函式中的return,表示离开当前函式。
回到哪里,要看是谁或是在何时,进行呼叫的,
一般如果是循序式的Code,就是返回到呼叫的函式。
范例中,中断函式,则是硬件触发呼叫的,
硬件动作,会先把当前执行位置(pc, program counter)存下来,
才去执行中断函式,当返回时,再将存下来的运行点还原,继续执行。
所以,中断函式没有固定的呼叫点,是靠触发时机去驱动的。
二、
至於中断的return跟一般函式的return比较,
功能是相同的,但是在运作上,会有些微差异。
中断函式的return,会额外操作硬体中断相关的寄存器Flag,
用以标示中断执行过,并得以重复触发。

参考资料:自己

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-01-23
嗯,可以这么理解,发生中断时,主函数停止执行,调至中断代码执行了。
因为中断时可以嵌套的,也有可能返回到之前被中断的中断程序那执行了。
总之就是返回之前中断出的代码继续执行。
第2个回答  2013-01-23
都是跳出函数返回主函数。
第3个回答  2013-01-23
如果这个条件满足则直接返回,否则执行下面的语句!
第4个回答  2013-01-23
return返回一个值。后面的程序就不会运行了。都是一样的。
相似回答