您的位置:首页 > 其它

自己理解的C和OC的本质区别

2015-04-19 21:22 141 查看
C和OC的区别

OC使用消息结构(messaging structure),C使用函数调用(function calling)

消息结构:运行时所执行的代码由运行环境决定(动态绑定)
函数调用:运行时所执行的代码由编译器决定

OC的重要工作都有“运行期组件”(runtime component)而非编译器完成,包括:

OC面向对象特性所需要的全部数据结构及函数
OC全部内存管理方法

OC是C的“超集”(superset),C的功能在OC中依然适用。

对象所占内存总是分配在“堆控件(heap space)”
分配在堆中的内存必须直接管理,而分配在栈上用于保存变量的内存则会在栈帧弹出时自动清理

OC将栈内存管理抽象出来,不再需要malloc和free。OC运行期环境把内存管理工作抽象为一套内存管理框架,即引用计数

要点:

OC为C添加了面向对象特性。
OC使用动态绑定的消息结构
OC代码执行由运行期环境决定
C的内存模型和指针是OC引用计数的基础
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐