gpt4 book ai didi

language-agnostic - C语言中的可重入函数和递归函数有什么区别?

转载 作者:行者123 更新时间:2023-12-03 11:45:31 26 4
gpt4 key购买 nike

在C语言中,我知道递归函数,但听说过重入函数,那是什么?它们之间有什么区别?

最佳答案

如果一个函数支持同时“通过”多个执行线程,则该函数是可重入的。这可能是由于实际的多线程,并且我在下面使用了这种情况,或者是由于其他发布者指出的其他情况。多线程是第一个想到的,也许也是最容易理解的,所以我专注于这种情况。

这意味着该函数不能使用静态的“全局”数据,因为该数据随后将被两个(或多个)线程并行访问,这通常会令人震惊。重入函数通常具有一个显式参数来保存任何特定于调用的状态,而不是静态地存储它。
strtok()是C标准库中函数的经典案例,众所周知该函数不可重入。

[编辑]:评论中有很多见解,澄清和更正,因此也请阅读!谢谢大家的帮助。

关于language-agnostic - C语言中的可重入函数和递归函数有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/261311/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com