2016 - 2024

感恩一路有你

c语言可重入函数有哪些 什么是可重入性?

浏览量:3054 时间:2021-03-13 21:34:54 作者:admin

什么是可重入性?

可重入函数可以由多个任务同时使用,而无需担心数据错误。相反,非可重入函数不能由多个任务共享,除非它们相互排斥(或者使用信号量,或者在代码的关键部分禁用中断)。可重入函数可以随时中断,以后继续运行而不会丢失数据。可重入函数要么使用局部变量,要么在使用全局变量时保护其数据。可重入函数:不为连续调用保存静态数据。不返回指向静态数据的指针;所有数据都由函数的调用者提供。通过使用本地数据或制作全局数据的本地副本来保护全局数据。如果必须访问全局变量,请记住使用互斥信号量来保护它们。永远不要调用任何不可重入的函数。

什么是可重入函数?

可重入函数:主要用于多任务环境。可重入函数只是一个可以中断的函数。换言之,当函数被执行时,它可以在任何时候被中断,然后转移到操作系统调度以执行另一段代码。返回控件时不会出错。

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

1、可重入函数

1)什么是可重入函数?

可重入函数可由多个任务同时使用,无需担心数据错误。相反,非可重入函数不能由多个任务共享,除非它们相互排斥(或者使用信号量,或者在代码的关键部分禁用中断)。可重入函数可以随时中断,以后继续运行而不会丢失数据。可重入函数要么使用局部变量,要么在使用全局变量时保护其数据。

2)可重入函数:

不保留连续调用的静态数据。

不返回指向静态数据的指针;所有数据由函数的调用者提供。

通过使用本地数据或制作全局数据的本地副本来保护全局数据。

如果必须访问全局变量,请记住使用互斥信号量保护它们。

切勿调用任何不可重入函数。

3)不可重入函数:

函数中使用静态变量,无论是全局变量还是局部变量。

函数返回一个静态变量。在函数中调用不可重入的函数。

在函数体中使用静态数据结构;

在函数体中调用malloc()或free()函数;

在函数体中调用其他标准I/O函数。

函数是单例中的成员函数,它使用的成员变量不是由线程独立存储的。

通常,如果函数在重入条件下使用未受保护的共享资源,则该函数不可重入

c语言可重入函数有哪些 不可重入函数列表 excel常用函数汇总

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。