【好程序员笔记分享】——编译预处理
来源:互联网 发布:小米nas网络私人云存储 编辑:程序博客网 时间:2024/05/29 14:53
<A href="http://www.goodprogrammer.org/" target="blank">ios培训</A>------我的objective-c笔记,期待与您交流!
预处理,就是在编译之前做的事情,所以预处理也叫预编译。预处理是Objective-C提供的一个重要功能。本章主要介绍编译预处理的3种指令:宏定义、“文件包含”处理及条件编译。
一·宏定义
在Objective-C程序中,允许用一个标识符来表示一个字符串,称为宏,被定义为宏的标识符称为宏名。Objective-C中的宏定义是通过“#define”实现的,主要分为两种:不带参的宏定义和带参的宏定义。
1·不带参宏定义
无参宏是指在宏名后面没有参数。自定义宏是要以“#define”开头。
#define 标识符 字符串
“define”为宏定义命令,“标识符”为宏名,“字符串”可以是常量、变量、表达式等。
2·带参宏
所谓带参宏就是在宏名后面加上了参数并且用括号将这些参数括起来。
定义:在宏定义时的参数称为形式参数。
带参宏的调用:当我们对带参宏定义好以后就要对其进行调用,在宏调用时的参数称为实际参数。
宏名(参数)
3·使用宏的注意点
1)宏名和字符串之间是不可以有等号的
2)在define前面必须要有“#”号。如果在define前面缺少了“#”号,就会出现错误提示信息
4·宏的取消
宏定义必须写在方法之外,其作用域为宏定义命令起到程序结束
如果我们想在程序的某一个地方终止宏的作用域,就要使用#undef命令:#undef 宏名
二·文件包含
所谓“文件包含”处理,是指一个源文件可以将另外一个源文件的全部内容包含进来,即将另外的文件包含到本文件中。文件包含是Objective-C预处
理程序的另一个重要的功能。Objective-C提供了#import命令用来实现“文件包含”的操作。
注意点:
1)当一个文件在另一个文件中时,文件包含是不可以缺少的。如果缺少了文件包含,程序就会出现错误提示信息
2)一个#import对应一个文件。如果大家为了省事,将多个文件放入一个#import文件中就会出现警告提示信息
3)在一个被包含文件中又可以包含另一个被包含文件,即文件包含是可以嵌套的
4)被包含文件与包含文件在预编译后已成为同一个文件,而不再是两个文件了
3·条件编译
条件编译的三种形式:#ifdef命令、#ifndef命令及#if命令
1)#ifdef
它的作用是当标识符已经被定义过(一般使用#define进行定义),就对程序段1进行编译,否则编译程序段2
2)#ifndef
它的作用是当标识符没有被定义时,就对程序段1进行编译;当标识符被定义过,就对程序段2进行编译。
3)#if
#if预处理程序语句提供控制条件编译的更加通用的方法。
,它的功能是检测常量表达式是否为非零。如果表达式的值为非零,就会处理到所有的后续编译语句,即程序段1。
小结:主要介绍了Objective-C预处理器,它是一个强大的工具,用于编写在编译时改变代码的代码。使用预处理器,我们可以做各种各样的事情。重点是使用#if、#ifndef、#ifdef编写一些条件编译时的代码。
- 【好程序员笔记分享】——编译预处理
- 【好程序员笔记分享】——继承
- 【好程序员笔记分享】——分类
- 【好程序员笔记分享】——协议
- 【好程序员笔记分享】——归档
- 【好程序员笔记分享】——内存管理
- 【好程序员笔记分享】——文件和目录处理
- 【好程序员笔记分享】——进程和线程
- 【好程序员笔记分享】——时间处理
- 【好程序员笔记分享】—— C语言中的枚举
- 【好程序员笔记分享】——面向编程objective基本介绍
- 【好程序员笔记分享】——Foundation框架的基本对象
- 【好程序员笔记分享】——java中关于异常的知识点
- 【好程序员笔记分享】—— C语言指针的理解
- 【好程序员笔记分享】—— 通过指针遍历一维数组
- 【好程序员笔记分享】—— 通过指针遍历字符串中的所有字符
- 【好程序员笔记分享】—— 函数结合指针的妙用
- 【好程序员笔记分享】—— C语言中的宏定义
- jvm之垃圾回收器
- 开始写Immunity Debugger PyCommand
- 关于C语言程序的编码问题介绍
- 调试体验
- 排序算法&查找算法
- 【好程序员笔记分享】——编译预处理
- 素数求和
- 黑马程序员--Object-C常用关键字解析
- Linux命令输出重定向
- web2.0中的事件传播机制
- vs2010/MFC类型转换之CString转char *
- 手机与我
- 打印素数表(牢记)
- iOS sign 設定