问问题描述
c语言sel是什么意思,跪求好心人,别让我孤军奋战!
答精选答案

C语言SEL:类成员方法的指针。(不同于C语言中的函数指针,函数指针直接保存了方法的地址,SEL只是方法编号)
IMP:一个函数指针,保存了方法的地址。
IMP和SEL关系:
每一个继承于NSObject的类都能自动获得runtime的支持。在这样的一个类中,有一个isa指针,指向该类定义的数据结构体,这个结构体是由编译器编译时为类(需继承于NSObject)创建的。在这个结构体中又包括指向其父类类定义的指针以及Dispatch table.Dispatch table是一张SEL和IMP的对应表。也就是说方法编号SEL最后还是要通过Dispatch table表寻找对应的IMP,IMP就是一个函数指针,然后执行这个方法。
本文来自作者[andongjiaotongzhiyejishux]投稿,不代表公众科技网立场,如若转载,请注明出处:https://www.cpst.net.cn/jingxuan/2469399.html
评论列表(4条)
我是公众科技网的签约作者“andongjiaotongzhiyejishux”!
希望本篇文章《c语言sel是什么意思》能对你有所帮助!
本站[公众科技网]内容主要涵盖:教育咨询,知识百科
本文概览:C语言SEL:类成员方法的指针。(不同于C语言中的函数指针,函数指针直接保存了方法的地址,SEL只是方法编号)IMP:一个函数指针,保存了方法的地址。IMP和SEL关系:每一个继承于NSObject的类都能自动获得runtime的支持。在这样的一个类中,有一个isa指针,指向该类定义的数据结构体,这个结构体是由编译器编译时为类(需继承于NSObject)创建的。在这个结构体中又包括指向其父类类定义的指针以及Dispatch table.Dispatch table是一张SEL和IMP的对应表。也就是说方法