C与OC的区别和联系
2015-12-22 22:57
239 查看
C语言的特点:
1)C语言是结构化语言,层次清晰,调试和维护比较容易
2)表现能力和处理能力比较强,可直接访问内存的物理地址
3)c语言实现对硬件的编辑,c语言课用语系统软件的开发,也可用语应用软件的开发,是集高级语言和低级语言的功能一体。
4)C语言效率高,可移植性强。
C++语言特点:
1、在C语言的基础上进行扩充和完善,使C++兼容了C语言的面向过程特点,又成为了一种面向对象的程序设计语言;
2、可以使用抽象数据类型进行基于对象的编程;
3、可以使用多继承、多态进行面向对象的编程;
4、可以担负起以模版为特征的泛型化编程。
OC的特点:
2、Objective-C,扩展了C 语言使它具备面向对象设计的能力,例如类、消息、继承;同时在Objective-C的代码中可以有C和C++语句,它可以调用C的函数,也可以通过C++对象访问方法;
3、Objective-C可以实现底层系统编程,另一方面可以支持利用动态架构进行开发。
OC与C语言的区别
OC里中兼容C语言的语法可以两者混合编码。 OC是面向对象的,有类,对象的概念,C语言没有
C是面向过程的语言。
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引用计数的基础
1)C语言是结构化语言,层次清晰,调试和维护比较容易
2)表现能力和处理能力比较强,可直接访问内存的物理地址
3)c语言实现对硬件的编辑,c语言课用语系统软件的开发,也可用语应用软件的开发,是集高级语言和低级语言的功能一体。
4)C语言效率高,可移植性强。
C++语言特点:
1、在C语言的基础上进行扩充和完善,使C++兼容了C语言的面向过程特点,又成为了一种面向对象的程序设计语言;
2、可以使用抽象数据类型进行基于对象的编程;
3、可以使用多继承、多态进行面向对象的编程;
4、可以担负起以模版为特征的泛型化编程。
OC的特点:
2、Objective-C,扩展了C 语言使它具备面向对象设计的能力,例如类、消息、继承;同时在Objective-C的代码中可以有C和C++语句,它可以调用C的函数,也可以通过C++对象访问方法;
3、Objective-C可以实现底层系统编程,另一方面可以支持利用动态架构进行开发。
OC与C语言的区别
OC里中兼容C语言的语法可以两者混合编码。 OC是面向对象的,有类,对象的概念,C语言没有
C是面向过程的语言。
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引用计数的基础
相关文章推荐
- 团队作业Week14——源代码管理
- 【转载】做好研究的十个简单法则
- Android动画(3)--属性动画
- 马赛克原理
- PHP后台技术-数据库对象技术PDO(二)
- OC中关键字@property,便利构造器,对象初始化的综合使用
- Caffe学习——使用自己的数据(非图像)训练网络
- CSS3秘笈:第十章
- sed
- asp.net 锚点
- Struts2环境的搭建
- 数据结构实验之排序七:选课名单
- 教你用Python抢票 100%秒杀抢票
- altium designer 09 封装库建立
- POJ1012 Joseph 约瑟夫环 水题
- sublimetext 使标签修改的文件更明显
- Android中使用Handler造成内存泄露的分析和解决
- Git学习好文-> Git --- The stupid content tracker
- MFC下给线程函数传递非静态成员变量
- RabbitMq、ActiveMq、ZeroMq、kafka之间的比较,资料汇总