OC 和 C 的关系

1.OC相对于C做了什么事情? 

a.在C语言的基础上新增了一小部分面向对象的语法. 

b.将C语言复杂的、繁琐的、可恶的语法封装的更为简单.

c.OC完全兼容C语言,可以在OC中写C语言代码.

2.OC程序的源文件的后缀名是.m文件, m的意思是message,代表OC中最重要的机制消息机制,而C语言的源文件的后缀名是.c文件.

3.main函数依然还是程序的入口和出口. int 类型的返回值,代表程序的结束状态, 返回0代表程序结束. 

4.main函数的参数 : 仍然可以接受用户在运行程序的时候传递数据给程序,参数也可以不要.

5.#import指令:以#开头,说明它是预处理指令,它是#include指令的增强版,将文件的内容在预编译的时候拷贝到指定的地方.

增强在什么地方? 如果使用#include指令导入头文件要实现不重复包含的效果,必须要配合条件编译指令来实现.而使用#import指令导入头文件无论多少次,只会包含一次,#import指令在包含文件的时候,底层会先判断这个文件是否被包含,如果被包含就会略过,否则才会包含.

6.框架是一个功能集 苹果或者第三方事先一些功能封装好在一个一个的类或者函数中,这些函数和类的集合就叫做框架.

Foundation框架:这个框架中提供了一些最基础的功能,就比如 一些最常用的类、 数据类型、输入和输出 等等.

7.NSLog打印函数,它是printf的加强版.

8.OC中设计了1个更为好用的用来存储字符串的一个类型,NSString 字符串, 字符串前带@就是OC字符串,没有的话是C字符串.

9.OC中增加了很多由@符号开头的关键字.

10.OC程序的编译、连接、执行.

1).在.m文件中写上符合OC语法规范的源代码.

2).使用编译器将源代码编译为后缀名为.o的目标文件.

cc -c xx.m

a.预处理

b.检查语法

c.编译 

3).链接 

与C语言不同的是 在这里有一个注意点就是 如果程序中使用到了哪个框架中的的功能或者类,那么在链接的时候,就必须告诉编译器去哪一个框架中找这个功能或者类.

cc xx.o -framework框架名称. 

4).链接成功之后,就会生成一个a.out可执行文件.

11.OC中的数据类型. 

包括C语言中所有的数据类型

1).a.基本数据类型: int、double、float、char  b.构造类型:数组、结构体、枚举  c.指针类型:int*、char*  d.空类型void e.typedef自定义类型.

2).新增的类型 

a.BOOL类型存储YES NO .

b. Boolean类型存储ture false. 

两个其实是一个意思 ,目的是为了吸引其他语言开发人来开发OC程序,比如JAVA就有Boolean这个数据类型,C#里面就有BOOL这个类型. 

3).class类型.类

4). id类型.万能指针

5).nil与NULL

7).SEL方法选择器

8).block

12.OC支持C所有的运行符 、OC支持C所有的控制语句、OC支持C所有的关键字,并新增了一些关键字,OC新增的关键字绝大多数都是@符号开头,@interface @implement @public … 

函数的定义和调用也与C语言的完全一致.

你可能感兴趣的:(OC 和 C 的关系)