gpt4 book ai didi

c - 如何在 C 中进行引用计数 - 参数传递

转载 作者:太空宇宙 更新时间:2023-11-04 01:10:10 25 4
gpt4 key购买 nike

分配的结构“对象”的引用计数基础对我来说似乎非常简单:给新对象一个 RC 为 1;在分配时减少旧对象的 RC(如果 RC=0 则释放)并增加分配对象的 RC;减少所有离开范围的对象的 RC。

然而,当 RC 对象被传递给函数或从函数返回时,我需要做什么我有点困惑。我是否必须在每次函数调用之前/之后对 RC 进行 inc/dec,如果需要,inc 和 dec 应该放在哪里(在函数内部的开始和结束处或函数调用之前和之后?)?函数返回的 RC 对象怎么样?

最佳答案

一般来说,每当创建一个新引用时,您都会递增,而每次销毁/丢弃一个引用时,您都会递减。

函数参数需要一个副本,所以这是一个增量。函数返回值需要一个副本,所以这是一个增量。当然,在许多情况下,也会有相应的同时丢弃,因此您可以通过不修改计数来进行优化。

当然,在 C 中,这会变得非常复杂并且很快就容易出错,因为您必须手动完成所有操作。一个损坏的/不可靠的引用计数机制可以说比根本没有更糟糕。

关于c - 如何在 C 中进行引用计数 - 参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14172255/

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