函数可重入性

函数可重入性

前后数据不一致,函数不可重入(函数中使用全局变量或静态变量) 不可重入函数

前后数据一致,函数 可重入(函数中使用局部变量)  可重入函数

 

局部变量储存在栈,在函数之外的地方被调用会重新创建一个栈空间(栈内数据不共享)

全局变量和静态局部变量储存在数据段和堆,在程序内的任何地方被调用都用一块数据块

 

函数可重入性

 

 系统调用函数 —— 可重入函数

标准IO函数 —— 不可重入函数  printf函数不是标准IO函数

malloc动态分配函数(是库函数)是不可重入函数,对程序影响大一般不放在信号处理函数中