可重入与不可重入
可重入与不可重入的理解
可重入的意思是一个函数同时被多次调用,在恢复上次不会影响原来的操纵结果
1、全局变量是不可重入, printf 引用全局变量stdout,浮点数是把临时操作结果放到硬件寄存器,会导致被破坏。
printf 和 浮点数是不可重入的。
不可重入
(1)使用了静态数据结构;
(2)调用了malloc或free;
(3)调用了标准I/O函数;标准io库很多实现都以不可重入的方式使用全局数据结构。
(4)进行了浮点运算.许多的处理器/编译器中,浮点一般都是不可重入的 (浮点运算大多使用协处理器或者软件模拟来实现。
参考链接:https://www.cnblogs.com/LiuYanYGZ/articles/5281547.html