单片机C语言设计里说的可重入函数是什么?和不可重入函数的区别是什么?

来源:百度知道 编辑:UC知道 时间:2024/09/23 04:20:51
单片机C语言设计里说的可重入函数是什么?和不可重入函数的区别是什么?

可以进行递归调用,即可以间接或直接调用该函数本身的函数称为可重入函数,例:(仅给出函数部分)
void fac (int n) reentrant
{
if (n>=1)
fac();
n--;
}
可以明显地看到,fac这个函数在运行时又会调用自身,从而无休止地循环调用自身,直到n小于1,这就是可重入函数。如果在函数声明中没有"reentrant",即"fac"不是可重入函数,虽可以运行,但是每调用一次fac,n的值就会消失,从而达不到原先的效果,这就是可重入函数与不可重入函数的区别。