gpt4 book ai didi

objective-c - 参数数量未知的 IMP

转载 作者:搜寻专家 更新时间:2023-10-30 19:46:08 24 4
gpt4 key购买 nike

是否可以创建一个 IMP,其中参数的数量与正在解析的实例方法的选择器相匹配?

我可以使用“if”语句和有限数量的参数(比如 0 到 10 之间),但是是否可以使用带有 va_args 的 IMP_implementationWithBlock 等?

最佳答案

您不能在运行时在 C 中创建函数;必须在编译时知道参数的数量。

您可以使用可变参数函数假装您有一个带有任意数量参数的函数(我已经包括了 this usage in a recent project )但这可能不可移植并且可能是未定义的行为。

如果您需要在签名和参数直到运行时才知道的函数之间移动参数,您几乎肯定想要查看 libffi。

Mike Ash 有一些非常有用的帖子:http://www.mikeash.com/pyblog/?tag=libffi那是我开始的地方,并学到了我所知道的大部分知识。

关于objective-c - 参数数量未知的 IMP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18295758/

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