1、什么是可重入函数
在一个多任务环境中,一个函数如果可以被多次重复调用,或者被多个任务并发调用,函数在运行过程中可以随时随地被打断,并不影响该函数的运行结果,我们称这样的函数为可重入函数。相反,如果一个函数不能多次并发调用,在执行过程中不能被中断,否则就会影响函数的运行结果,那么这个函数就是不可重入函数。
2、非可重入函数特征
一个函数如果满足下列条件中的任何一个,那么这个函数就是不可重入函数。
● 函数内部使用了全局变量或静态变量。
● 函数返回值是一个全局变量或静态变量。
● 函数内部调用了malloc()/free()函数。
● 函数内部使用了标准I/O函数。
● 函数内部调用了其他不可重入函数。