iOS 预处理程序

预处理程序中语句的使用方法,预处理程序语句以(#)标记。


一、#define

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语句

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

番薯大佬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值