quote:以下是引用小釉在2012-02-22 08:13:21的发言:
在fc中,如果一个程序中带有临时变量,在临时变量还没有赋值给其他变量之前,被高优先级的程序打断后,在划红线的地方被高优先级的程序打断,高优先级程序执行完以后,重新调用fc的话,会不会出现临时变量重新赋值的情况呢?还是临时变量在中断后,先压入堆栈呢。
不会出现历史变量重新赋初值的情况,前提是满足系统要求的嵌套层级。因为在中断程序执行之前会将临时数据压入到相应的堆栈区,保护起来(堆栈区的长度一般都能满足要求的),等到中断完成后再出栈即可。