OC之OC与C的比较
1. 从编写、编译、链接的流程.
1). 创建1个.m的源文件.
2). 在这个文件中写上符合OC语法规范的源代码.
3). 编译.
a. 预编译: 执行预处理代码.
b. 检查语法.
c. 生成目标文件. .o的目标文件. object
4). 链接.
a. 添加启动代码.
b. 链接函数.
如果代码中使用到了框架中的功能.那么在链接的时候,就必须要告诉编译器去哪个框架中找这些函数.
cc xx.o -framework 框架名称
2. 和C程序各个阶段的文件后缀名对比.
源文件 目标文件 可执行文件
C语言 .c .o .out
OC语言 .m .o .out
3. 在Xcode中点击运行按钮.
所有的事情,Xcode自动完成.
4. OC支持C语言中的所有的数据类型.
1). 基本数据类型
int
double
float
char
short
long
long long
unsinged
singed
2). 构造类型
数组.
结构体
枚举.
3). 指针.
4). typedef定义类型.
5). void空类型.
5. OC在C的数据类型的基础之上,还新增了1些数据类型.
1). BOOL类型
这个类型的变量中可以存储YES或者NO 中的任意的1个数据.
一般情况下.BOOL类型的变量用来保存1个条件表达式的结果.
如果条件成立,那么结果就是YES 否则结果就是NO
在OC中,使用BOOL类型的变量来保存1个条件表达式的结果. 条件成立就是YES 否则就是NO
BOOL类型的本质:
typedef signed char BOOL;
实际上是1个有符号的char变量.
YES和NO的本质
#define YES ((BOOL)1)
#define NO ((BOOL)0)
其实YES就是1 NO就是0.
2). Boolean类型
这个类型的变量只能存储true或者false这两个数据.
代表1个条件表达式的结果.
一般情况下.Boolean类型的变量用来保存1个条件表达式的结果.
如果条件成立,那么结果就是true 否则结果就是false.
Boolean的本质
typedef unsigned char Boolean;
是1个无符号的char变量.
true和false的本质.
#define true 1
#define false 0
一般都是使用BOOL类型的.
3). class类型
NSString 类.
4). nil
与NULL差不多.
5). SEL
这个类型的变量是来保存方法的.
6). block
这个类型的变量是用来保存1段代码的.
6. OC的运算符: OC支持C的所有的运算符.
1). 赋值运算符.
2). 算术运算符
3). 复合赋值运算符
4). 自增与自减运算符
5). 逗号运算符
6). 关系运算符 比较运算符
7). 逻辑运算符
8). 三元运算符
9). & 取地址运算符.
10). * 指针访问运算符.
11). 位运算符.
.........
7. OC的控制语句: OC支持C的所有的控制语句.
C语言的代码完全可以写在OC中,并且效果一致.
1). IF
2). switch-case
3). while do-while for
4). 数组.
5). 指针.
6). 结构体 枚举
.......
8. OC的关键字
1). OC支持C语言的所有的关键字. 并且效果是一样的.
2). OC在C的基础之上还新增了一些关键字.OC中新增的关键字绝大部分都是以@开头.
@interface
@implementation
@public
@protocol
......
9. OC相对于C做了两件事情.
1). 将C语言中复杂的 繁琐的语法封装的更为简单.
2). 增加了面向对象的语法.
OC之OC与C的比较的更多相关文章
- OC基础--OC中的类方法和对象方法
PS:个人感觉跟C#的静态方法和非静态方法有点类似,仅仅是有点类似.明杰老师说过不要总跟之前学过的语言做比较,但是个人觉得,比较一下可以加深印象吧.重点是自己真的能够区分开! 一.OC中的对象方法 1 ...
- OC基础--OC中类的声明与定义
OC中设计一个类的步骤: 一.声明类: 1.用到的关键字--@interface 和 @end 2.类名 3.继承NSObject 4.属性 5.方法(行为,只需要声明) 二.实现(定义)类 1.用到 ...
- OC基础--OC中类的定义
OC中类的定义与使用跟C#和java差别相当明显,做个笔记,牢记并加以区别! 一.OC中类的定义:关键字@implementation 和 @end 注意事项: 1.定义好一个类之后,要让这个类继承N ...
- ios开发之OC基础-oc小程序
本系列的文章主要来自于个人在学习前锋教育-欧阳坚老师的iOS开发教程之OC语言教学视频所做的笔记,边看视频,边记录课程知识点.建议大家先过一遍视频,在看视频的过程中记录知识点关键字,把把握重点,然后再 ...
- OC - 4.OC核心语法
一.点语法 1> 基本使用 点语法本质上是set方法/get方法的调用 2> 使用注意 若出现在赋值操作符的右边,在执行时会转换成get方法 若出现在赋值操作符的左边,在执行时会转换成se ...
- OC - 3.OC的三大特性
一.封装 1> 封装的定义 隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别 2> 封装的好处 可以通过set方法防止为成员变量设置不合理的值 仅向外部提供公 ...
- OC - 2.OC基础知识介绍
一.基础语法 1> OC语言和C语言 C语言是面向过程的语言,OC语言是面向对象的语言 OC语言继承了C语言,并增加了面向对象的思想 以下内容只介绍OC语言与C语言的不同之处 2> 关键字 ...
- iOS开发——OC篇&OC高级语法
iOS开发高级语法之分类,拓展,协议,代码块详解 一:分类 什么是分类Category? 分类就是类的补充和扩展部分 补充和扩展的每个部分就是分类 分类本质上是类的一部分 分类的定义 分类也是以代码的 ...
- oc总结 --oc基础语法相关知识
m是OC源文件扩展名,入口点也是main函数,第一个OC程序: #import <Foundation/Foundation.h> int main(int argc, const cha ...
随机推荐
- T-SQL: 17 个与日期时间相关的自定义函数(UDF),周日作为周的最后一天,均不受 @@DateFirst、语言版本影响!
原文:T-SQL: 17 个与日期时间相关的自定义函数(UDF),周日作为周的最后一天,均不受 @@DateFirst.语言版本影响! CSDN 的 Blog 太滥了!无时不刻地在坏! 开始抢救性搬家 ...
- 2.1 LINQ的查询表达式
在进行LINQ查询的编写之前,首先需要了解查询表达式.查询表达式是LINQ查询的基础,也是最常用的编写LINQ查询的方法. 查询表达式由查询关键字和对应的操作数组成的表达式整体.其中,查询关键字是常用 ...
- POJ 2560 Freckles Prime问题解决算法
这个问题正在寻求最小生成树. 给定节点的坐标,那么我们需要根据各个点之间的这些坐标来计算距离. 除了这是标准的Prime算法的,能源利用Prime基本上,你可以使用Kruskal. 经典的算法必须填写 ...
- JavaScript的闭包特性
闭包是一个比较抽象的概念,尤其是对js新手来说.在这里,我就我个人的理解j简单谈一下: 闭包:官方解释是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部 ...
- .NET的微型Web框架 Nancy
.NET的微型Web框架 Nancy .NET的微型Web框架 Nancy 大部分微软平台的开发人员如果选择开发框架只能是在ASP.NET WEBFORM和ASP.NET MVC两个之间选择. 而 ...
- Android项目---语言适配
android多国语言文件夹 android多国语言文件夹文件汇总如下:(有些语言的书写顺序可能跟中文是相反的) 中文(中国):values-zh-rCN 中文(台湾):values-zh-rTW 中 ...
- JDK6、Oracle11g、Weblogic10 For Linux64Bit安装部署说明
JDK6.Oracle11g.Weblogic10 For Linux64Bit安装部署说明 项目编号 编写人 成 编写日期 2013/07/29 审核 修订说明 目录 JDK6.ORACLE11G. ...
- 使用jquery.form异步提交注意jquery.validate需要手动添加验证
使用jquery.form.js异步提时,即使jquery.validate验证失败也会提交的所以加个$("form").valid()来判断是否通过验证: $("#fo ...
- Unit Of Work-工作单元
Unit Of Work-工作单元 阅读目录: 概念中的理解 代码中的实现 后记 掀起了你的盖头来,让我看你的眼睛,你的眼睛明又亮呀,好像那水波一模样:掀起了你的盖头来,让我看你的脸儿,看看你的脸儿红 ...
- [置顶] 博客停止更新 && 我的大学数年
博客停止更新 前言: 这些天,一直还没有时间发表这篇博文,近期,做了一个决定:博客更新停止. 我有话说: 这些天来,还真是感谢大家的关注了.从2011年的07至今,2013年的07月,两个年头,写下了 ...