面向对象的C语言
提及面向对象的语言大多数Windows下的开发者会首先想到的是CC#或者Java。但是如果你首先想到的是Objective-C那么你应该是一位Mac OS下的开发者这个现代计算机系统中最多应用Objective-C的Apple公司Mac OS X。
Object-C和C
Object-C是在C语言的基础上吸收了Smalltalk的面向对象成分创造出的这与大多数以Java为基础的面向对象语言非常的不同。
而且与其他面向对象语言隐藏类在内存上的构造不同的是Object-C用C语言来实现类也就是说和现代面向对象的思维方式相反不是在语言中重新引进面向对象的元素而是借助设计模式在C语言中不追加新元素的前提下实现面向对象的思想。举例来说C或者Java语言本身中就包含有类这个面向对象的概念更通俗的说法是class这个关键字就是语言的一个组成部分而在Object-C中类的定义要放到头文件中进行其本质上就是一个用typedef隐藏过的构造体。所以Object-C和C语言有很高的亲和性这会使熟悉Java的开发者非常难以接受然而对熟悉C语言和设计模式的开发者却是一个好机会。
Object-C的编译环境
如果系统是Mac OS X的话安装附属的开发环境后立刻就能开始使用Objective-C 。而Linux系统下的GCC或者专门应用于Windows的GCC也能编译Objective-C。
新的预处理命令
Objective-C是C语言的扩张C语言是Objective-C的子集所以C语言不做任何修改就能在Objective-C环境下运行。更准确的说Objective-C不是C语言本身的扩张而是对编译器的扩张编译器最终会将Objective-C翻译成C语言而两者编译的结果代码也会是完全一样。在Objective-C中新追加的关键字也不过是在头文件中用#define或者typedef的重新定义而已。
所以为了正确运行Objective-C必须首先引进特定的头文件Objective-C中新引进的关键字和类型都定义在objc/objc.h这个头文件中。但是请记住objc/objc.h中定义的机能仅仅是支持Objective-C正常运行最小集合。而这个头文件随编译器的不同而有所不同在GCC编译器中为objc/Object.h在Mac OS的Cococa中则为Foundation/NSObject.h。在Object-C中不依存编译器的头文件记述方式为objc/objc.h。
引用头文件的方式在Object-C中增加了#import这个预处理命令。#import除了不会重复引进已经s存在的文件之外(重复引用在C语言中是一个令人头疼的问题)用法和功能都和#include 一样。
#import <头文件>
#import "头文件"
如果你仍然坚持使用#include来引进头文件的话请不要忘了处理重复引用的问题。
另外和以往的C语言一样为了使用printf()等标准函数还需要引用stdio.h头文件还需要说明的是Objective-C源程序文件的扩展名不是.c而是.m。
#import
#import
int main() {
printf("Hello World \n");
printf("Hello Wordl Too \n");
return 0;
}
从上面的程序可以看出Objective-C和C语言几乎完全一样事实上Objective-C不是与C语言类似而是和C语言具有完全的互换性或者说本质上就是C语言。
注释方式上除了可以使用C语言的/* */之外Objective-C又增加了 //这种单行的注释方式。
//这是一行注释。
转:https://www.cnblogs.com/yingzi/articles/2363371.html