[学习笔记—Objective-C]《Objective-C 程序设计 第6版》第十二章 预处理程序

原创 2015年07月07日 15:24:22

Part 1. #define语句

  • #define语句的基本用途之一是给符号名称指定程序常量。类似于文本编辑器中的搜索和替换。

  • 优点

    • 记忆成本低:不必特意记住常量的值
    • 更改便携性:只需在一个地方更改常量的值
    • 加强程序的可扩展性:定义数组的大小
  • 定义的内容

1.定义整数

#define TRUE 1 // 定义TRUE,并使其等于1。
gameover = TRUE // 将1赋给gameover。

2.定义表达式和其他任何内容

#define TWO_PI 2.0 * 3.1415926

#define AND &&
#define OR ||

3.预定义的本身可以引用另一个预定义的值

#define TWO_PI 2.0 * PI //顺序可以颠倒
#define PI 3.1415926

4.带有一个或多个自变量的定义

#define IS_LEAP_YEAR(y) y % 4 == 0 && y % 100 != 0 \
                                || y % 400 == 0 
.
.

if (IS_LEAP_YEAR (year))                                

Part 2. #import语句

开发的一组宏收集到一个单独的文件(头文件,包含文件)中,然后使用#import语句把它们包含在程序中。

头文件的引用

  • 头文件名两侧是“”:预处理程序首先在包含源文件的目录中查找。但是可以通过修改“项目设置”用Xcode指定预处理程序搜索的确切位置。
  • 头文件名两侧是<>:预处理程序只在特殊的“系统”头文件目录中寻找头文件。

Part 3. 条件编译

条件编译功能:创建可以在不同计算机系统上编译运行的程序。还经常用来开关程序中的各种语句。

Part 3.1 #ifdef, #endif, #else 和 #ifndef 语句

#ifdef IPAD    //若前面已经定义了 IPAD, 则执行:

# define kImageFile @"barnHD.png"
#else
# define kImageFile @"barn.png"
#endif

为预处理程序定义符号IPAD:

#define IPAD 1
//或者
#define IPAD

Part 3.2 #if 和 #elif 预处理程序语句

#if语句用来检测常量表达式是否非零。如果常量表达式的结果非零,机会处理到#else,#elifendif为止的所有后续行。

Part 3.3 #undef语句

消除特定名称的定义

[学习笔记—Objective-C]《Objective-C 程序设计 第6版》第三章 类,对象和方法 课后题解析 3-7

第三章的课后题多半都比较主观,在此只分享第七题。第七题几乎囊括了第三章左右的知识点,非常典型。以下是题目和本人编写的代码。为了方便起见,将头文件,实现文件,主函数文件合并到了一起。 3-7 定义一...
  • apple890111
  • apple890111
  • 2015年06月25日 11:53
  • 1023

Objective-C 程序设计 第十二章

预处理程序预处理程序语句使用#开头,一行中的第一个非空字符。 大部分内容都与C语言类似,相当于复习啦。 12.1 #define语句 - 宏 预定义不是变量。不能为它赋值。实际上是字符的简单替换。...
  • Xiemx
  • Xiemx
  • 2015年11月12日 23:33
  • 356

[学习笔记—Objective-C]《Objective-C 程序设计 第6版》第三章 类,对象和方法

本人于2015年6月10日开始自学ios开发。 此学习笔记是本人在学习《Objective-C 程序设计 第六版》的过程中,经本人修改,整理的内容。 略过第一,二章,从第三章有关类的概念开始。 ...
  • apple890111
  • apple890111
  • 2015年06月25日 01:11
  • 534

[学习笔记—Objective-C]《Objective-C 程序设计 第6版》第三章 类,对象和方法 课后题解析 3-7

第三章的课后题多半都比较主观,在此只分享第七题。第七题几乎囊括了第三章左右的知识点,非常典型。以下是题目和本人编写的代码。为了方便起见,将头文件,实现文件,主函数文件合并到了一起。 3-7 定义一...
  • apple890111
  • apple890111
  • 2015年06月25日 11:53
  • 1023

Objective-C考试2015年12月最新题库的试题

※ 选择题(共80题,每题1分)               1、OC中布尔(BOOL)类型的变量的值只有:答案:(B)             A、1/0             B、YES/NO ...
  • sanzhanggui123
  • sanzhanggui123
  • 2015年12月12日 15:47
  • 2093

《Windows程序设计第六版》译文:简介(1)

引言        本书《Windows程序设计第6版》是一本编写Windows8应用的入门书籍。在写这本电子书的时候(2012.8.1)Windows8还没有完成,这本实体书也并没有完成。你现在看到...
  • panhe1992
  • panhe1992
  • 2013年09月04日 22:16
  • 9096

Objective-C面试题(精心整理的,附答案)

http://www.mianwww.com/html/2014/03/20372.html 1、objective-c 是所有对象间的交互是如何实现的? 在对象间交互中每个对象承...
  • caizhongtao
  • caizhongtao
  • 2016年05月05日 15:47
  • 807

使用Xcode工具开发Objective-C程序

1.启动X-code,单击屏幕顶端的File➡️New➡️Project,或者直接点击页面中的Create a new Xcode project, X-code将会弹出如下图所示的新建项目的对话框...
  • tangjun201
  • tangjun201
  • 2015年05月04日 20:50
  • 602

Objective-C 入门教程

来自 http://www.runoob.com/w3cnote/objective-c-tutorial.htmlObjective-C 是一种简单的计算机语言,设计为可以支持真正的面向对象编程。O...
  • yjwx0018
  • yjwx0018
  • 2016年12月13日 12:54
  • 996

c++ primer plus(第6版)中文版 第五章编程练习答案

第五章编程练习答案 5.1输入2个整数,输出这2个之间(包括这两个)所有整数和...
  • gd275313
  • gd275313
  • 2014年05月04日 21:14
  • 1138
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[学习笔记—Objective-C]《Objective-C 程序设计 第6版》第十二章 预处理程序
举报原因:
原因补充:

(最多只允许输入30个字)