再入函数
再入函数可以同时由几个程序共用。当执行再入函数时,其它程序可以中断执行并开始执行同一个再入函数。通常,C51函数不能递归调用或者用于导致重入的方式。受到该限制是因为函数自变量和局部变量都存放在固定的存储器位置。再入函数属性允许说明那些可以重入的函数,因此可以实现递归调用。例如
int calc(char i,int b) reentrant
{
int x;
x = table[i];
return (x*b);
}
再入函数可以递归调用,也可以同时被两个后者更多程序调用。它经常用于实时应用或中断代码和非中断代码必须共用一个函数的情况。对于每个再入函数,根据存储器的模型在内部或者外部存储器模拟再入堆栈区。