gpt4 book ai didi

c - Objective-C运行时如何实例化根元类和其他类描述?

转载 作者:太空狗 更新时间:2023-10-29 17:12:09 24 4
gpt4 key购买 nike

我正在尝试实现一个基本的面向对象的 ANSI C 运行时并使用 Objective-C 作为指南。

它们似乎是三个部分。类描述、类接口(interface)和类实现。为了实例化类接口(interface),只有在运行时已经使用类描述实例化了您的类对象时,才能使用熟悉的使用类对象实例化一个对象的方法。

那么所有的类定义都是在第一次运行时静态分配的,以提供使用类对象实例化的能力吗?或者如果它们是动态分配的(在初始调用时),如何分配?它是运行循环的一部分,还是 Class 实际上是一个在转发消息之前确定它是否已经分配的函数?

最佳答案

运行时通过在实际程序执行之前调用的构造函数进行一些初始化。它们在 gcc 和 clang 中都使用 __attribute__((constructor))

在 Objective-C 的情况下,其中一些由编译器嵌入到二进制文件中。您必须将它们包含在标题中才能达到类似的效果。

这些函数使用编译器自动嵌入的数据。他们做一些事情,例如为类查找函数构建哈希表,然后将其用于实际的消息传递。

另一方面,实例是动态分配的。

我正在做类似的事情,所以我真的不知道比那多多少,但这和我挖的一样深。

关于c - Objective-C运行时如何实例化根元类和其他类描述?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2219501/

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