详解Objective-C学习笔记之预处理程序

移动开发 iOS
本文介绍的是Objective-C学习笔记中的预处理程序,主要介绍了预处理程序中语句的使用方法,先来看详细内容。

Objective-C学习笔记之预处理程序是本文要介绍的内容,主要介绍了预处理程序中语句的使用方法,预处理程序语句以(#)标记。来看详细内容。

一、#define

1、更高级的定义类型

给符号名称指派表达式和其他任何东西。如:

  1. #define TWO_PI 2*3.141592654,#define AND && 

预处理程序假设定义包含在程序的一行中。如果需要第二行,那么上一行的***一个字符必须是反斜线符号“\”。如:

  1. #define IS_LEAP_YEAR(y) y%4==0&&y0!=0\  
  2. ||y@0==0 

可带参数。预定义(definition)通常称作“宏”。

2、#运算符

如果在宏定义中参数之前放置一个#,那么在调用该宏时,预处理程序将根据宏参数创建C风格的常量字符串。如:

  1. #define str(x) #x  
  2. str(testing)——"testing"  
  3. str("hello")——"\"hello"\" 

3、##运算符

用于把两个标记(token)连在一起。它的前面(或后面)是宏的参数名称。预处理程序使用调用该宏时提供的实际参数,并且根据该参数和##之后(或之前)的标记创建单个标记。如:

  1. #define printx(n) printf("%i\n",x##n);  
  2. printx(20)——printf("%i\n",x20); 

二、#import语句

.h->头文件(或包含文件)。

设置一组#import语句,将其输入到一个xxx.h的独立文件中,若需要则使用预处理程序指令:

#import "xxx.h"。

#import <……>导致预处理程序只在特殊的"system"头文件目录中寻找包含文件,当前目录不会被搜索。

#import "……"预处理程序在一个或者多个文件目录。

三、条件编译。

通常用于创建可以在不同计算机系统上编译运行的程序,经常用来开关程序中的各种语句。

1、#ifdef、#endif、#else和#ifndef语句

从一个计算机系统上移植到另一个计算机系统上。

2、#if和#elif预处理程序语句

表达式结果非零——#else、#elif或#endif为止的所有后续行,否则跳过它们。

特殊运算符:#define (name) 也能用在#if语句中。

3、#undef语句

使一些已经定义的名称称为未定义的。

小结:详解Objective-C学习笔记之预处理程序的内容介绍完了,希望本文对你有所帮助!

责任编辑:zhaolei 来源: 互联网
相关推荐

2011-08-17 10:29:39

Objective-C预处理

2011-08-16 10:23:04

Objective-CNSAutoreleaXcode常用键

2011-07-27 16:36:03

iphone Objective- 静态库

2011-08-04 14:58:37

Objective-C Cocoa NSString

2011-08-05 14:03:39

Objective-C 对象 模板

2011-08-04 11:04:14

Objective-C 面向对象 继承

2011-08-04 13:43:30

Objective-C 私有变量

2011-07-22 15:42:39

Objective-C UIView 内存

2011-08-17 10:58:59

Objective-C构造函数

2011-07-29 16:16:30

Objective-c block

2011-07-29 15:47:21

iPhone开发 Objective- C

2011-08-15 16:09:44

Cocoa对象Objective-C

2011-07-28 15:11:23

iOS Objective-

2011-05-11 14:06:49

Objective-C

2013-08-21 14:57:42

objective-c问题

2015-10-08 10:01:10

Objective-CLayout

2011-07-18 16:36:51

Objective-C XCode

2014-04-01 10:50:42

iOS开发runtimeObjective-C

2013-05-02 10:51:17

iOS开发Objective-C@property

2013-07-24 19:19:03

Objective-CiOS开发动态特性之protoc
点赞
收藏

51CTO技术栈公众号