原文:C语言函数重入

C语言函数重入 可重入函数:可以被中断的函数,即这个函数执行时,可以中断其执行,可以由一个或多个任务并发使用,而不比担心数据错误。 不可重入函数 不安全函数 不能运行在多任务环境下,除非能保证互斥 使用信号量 代码的关键部分禁用中断 是由于使用了未受保护的系统资源,如全局变量区,中断向量表等。 可重入函数: 没有静态数据结构 不返回指向静态数据的指针 所有函数数据由函数的调用者提供 使用auto变 ...

2016-05-09 22:02 0 2342 推荐指数:

查看详情

C语言重入函数和不可重入函数

重入函数和不可重入函数的概念   在函数中如果我们使用静态变量了,导致产生中断调用别的函数的 过程中可能还会调用这个函数,于是原来的 静态变量被在这里改变了,然后返回主体函数,用着的那个静态变量就被改变了,导致错误。这类函数我们称为不可重入函数。   如果是在函数体内 动态申请内存的话 ...

Wed Jan 09 23:55:00 CST 2019 0 3114
C语言重入函数和不可重入函数

【1】什么是可重入函数和不可重入函数呢? 可重入函数:一般是保存在栈里面的,是可以被编译器随机的分配内存并且释放的函数称为可重入函数 不可重入函数:一般是指函数返回值是static 型的或者是函数内部定义了static变量或者使用了全局变量等称为不可重入函数 ...

Mon Feb 28 02:23:00 CST 2022 0 663
C语言之可重入函数 && 不可重入函数

重入函数 在 实时系统的设计中,经常会出现多个任务调用同一个函数的情况。如果这个函数不幸被设计成为不可重入函数的话,那么不同任务调用这个函数时可能修改其他任 务调用这个函数的数据,从而导致不可预料的后果。那么什么是可重入函数呢?所谓可重入是指一个可以被多个任务调用的过程,任务在调用 ...

Thu Aug 14 23:34:00 CST 2014 0 11712
重入函数

这种情况出现在多任务系统当中,在任务执行期间捕捉到信号并对其进行处理时,进程正在执行的指令序列就被信号处理程序临时中断。如果从信号处理程序返回,则继续执行进程断点处的正常指令序列,从重新恢复到断点重新执行的过程中,函数所依赖的环境没有发生改变,就说这个函数是可重入的,反之就是不可重入的。众所周知 ...

Tue Oct 30 23:31:00 CST 2018 0 1138
重入函数和不可重入函数

重入函数可以做这样的基本定义:重入意味着这个函数可以重复进入,可以被并行调用,可以被中断,它只使用自身栈上的数据变量,它不依赖于任务环境,在多任务调度过程中,它是安全的,不必担心数据出错。 不可重入函数基本上与可重入函数有相反的定义了:不可重入,意味着不可被并行调度,否则会产生不可预料 ...

Thu Apr 25 06:01:00 CST 2019 0 966
重入函数

一、可重入函数1)什么是可重入性?可重入(reentrant)函数可以由多于一个任务并发使用,而不必担心数据错误。相反, 不可重入(non-reentrant)函数不能由超过一个任务所共享,除非能确保函数的互斥(或者使用信号量,或者在代码的关键部分禁用中断)。可重入函数可以在任意时刻被中断,稍后再 ...

Sun Feb 09 06:10:00 CST 2020 0 868
Keil C51 可重入函数 reentrant function 和递归分析

重入与不可重入,reentrant关键字 Keil中帮助文档对此又详细的介绍 这一段的意思是,在Keil中,正常情况下函数调用是通过固定寄存器传递参数。因此当出现递归和类似的情况时,寄存器中参数可能会被覆盖。 如果想要通过堆栈来传递参数则需要使用reentrant参数。这个用来传递参数 ...

Sun Jul 23 23:56:00 CST 2017 0 2447
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM