自己理解的C和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引用计数的基础
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值