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语言的完全一致.