iOS-#define详解

前言

宏(#define)在C系开发中可以说占有举足轻重的作用。底层框架自不必说,为了编译优化和方便,以及跨平台能力,宏(#define)被大量使用,可以说底层开发离开宏(#define)将寸步难行。

不得不说在C系语言(C、Objective-C、C++等)中宏(#define)真是个非常方便又强大的东西。

宏(#define)在基本的语法上是非常的简单的,但完全不会影响它的强大。

不过有时候正因为宏(#define)的简单、方便和强大,就会导致我们平常在使用的时候,其中会有很多的注意点和细节需要我们去注意,如果不小心将其忽略, 那么可能会带来我们意料之外的不想要的结果。

如果我们要想灵活的使用宏(#define),那么深入了解宏(#define)工作原理和用法必不可少。

而且经常在iOS开发中使用Objective-C, 那么肯定会经常使用到宏(#define)。

预编译 

程序会在预编译之前还会有一些操作, 比如:删除反斜线+换行符的组合, 将各种形式的注释用空格替代等等。

接着是预编译阶段,预编译在处理#define的时候,会从#开始一直执行到遇到的第一个换行符(写代码的时候换行的作用)为止。

所以可知#define只会允许定义一行的宏,但是因为预编译之前会删除反斜线+换行符的组合,所以我们可以利用反斜线+换行符来定义多行宏,在将删除反斜线和换行符的组合后,在预编译阶段的逻辑上#define定义就成了一行的宏了。

#define在预处理阶段只进行文本的替换(相当于把代码拷贝粘贴),不会进行具体的计算。

#define作用在预编译时期,其真正的效果就是

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值