自己理解的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引用计数的基础
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引用计数的基础
相关文章推荐
- 自己理解的J2EE三层架构(与软件设计模式的联系区别)
- 谈一谈自己对依赖、关联、聚合和组合之间区别的理解
- 由读《深入理解计算机系统》一书引发对程序本质的探讨以及自己的一些理解
- 透彻理解位图与矢量图的本质区别(小包子觉得讲的很清晰)
- inode结构详解(深层次理解拷贝,删除,移动的本质)以及硬链接和软链接的区别(图文)
- java抽象类与接口的区别(谈谈自己的理解)
- 谈一谈自己对依赖、关联、聚合和组合之间区别的理解
- 谈一谈自己对依赖、关联、聚合和组合之间区别的理解
- 谈一谈自己对依赖、关联、聚合和组合之间区别的理解
- 自己对依赖、关联、聚合和组合之间区别的理解
- 谈一谈自己对依赖、关联、聚合和组合之间区别的理解
- 谈一谈自己对依赖、关联、聚合和组合之间区别的理解
- 自己理解的J2EE三层架构(与软件设计模式的联系区别)
- 自己理解的J2EE三层架构(与软件设计模式的联系区别)
- 百度百科(http://baike.baidu.com/ )中“RSA”、“数字签名”、“公钥”、“DES”等4个名词的解释。理解 公钥加密 与 数字签名 之间的联系与区别,能够用自己的话阐述两者的概
- 自己理解的javascript静态方法和动态实例方法区别
- 谈一谈自己对依赖、关联、聚合和组合之间区别的理解
- 面向过程(或者叫结构化)分析方法与面向对象分析方法到底区别在哪里?请根据自己的理解简明扼要的回答。
- ASP中set与dim的区别(自己的理解)
- 自己理解的URL和URI的区别