iOS 宏的使用

       由于平时在开发过程中,经常有遇到使用宏、常量的时候。但是一直对这两者的使用有些疑惑。尤其是对const的使用更加模糊,只知道该修饰符有很多种用法,位置不同含义不同。所以特意查询了一下,为了以后方便自己查阅特此记录一下。

       宏、常量、变量

 1、宏

1.1、宏的概念

      宏就相当于是文本替换操作,是编译期语法,并不会占用到内存,因为实质上它根本就不存在于程序中。只是在预处理器里进行文本替换,没有类型,不做任何类型检查,编译器可以对相同的字符串进行优化。只保存一份到 .rodata 段。甚至有相同后缀的字符串也可以优化,你可以用GCC 编译试,"Hello world" 与 "world" 两个字符串,只存储前面一个。取的时候只需要给前面和中间的地址,如果是整形、浮点型会有多份拷贝,但这些数写在指令中。占的只是代码段而已,大量用宏会导致二进制文件变大。

1.2、宏的几种用法

a.宏函数:实质上就是文本替换,只不过这里的替换文本是函数

b.条件编译(宏值编译、宏是否定义编译):借助宏的条件指令,选择性执行代码

c.简单文本替换:替换文本内容并非函数,是一些简单的常量常量等。比如字符串等

1.3、语法格式和条件编译指令

语法格式:#define  宏文本  替换文本

常用的条件指令:
       
        #if           如果  宏值判断a
        #ifdef      如果定义  根据宏是否定义b
        #ifndef    如果没定义 
        #elif        如果  //else  if          
        #else      否则  与  #if  对应关系           
        #endif    结束标识           
        #undef   取消宏和#define  定义宏 

1.4、使用示例

宏函数:

条件编译:


简单文本替换:
#define  Pi  3.14



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值