iOS-const、宏、static、extern
2015-12-24 本文已影响234人
Super_Yi
const与宏区别:
1. 编译时刻: const:编译 宏:预编译,打开项目时,自动读条
2. 编译检测: const:会做编译检测 宏:不会做编译检测
3. 宏的好处: 替代方法或者函数
4. 宏的坏处: 项目中大量使用宏,会造成预编译时间过长.
PS:很多blog提到宏会消耗大量内存,这种说法是错误的:
验证:把宏赋值给不同的字符串对象,对象的内存地址是一样的
const作用:
1. 修饰右边变量(基本变量,指针变量)
2. 被const修饰的变量只读
const在开发中使用场景
1.定义一些全局字符串只读变量(常量),代替宏
2.限制方法中参数只读
static:
1.修饰局部变量:延迟局部变量生命周期,保证整个项目都在,只会分配一次内存,程序一运行,就会给static修饰变量分配内存
2.修饰全局变量:限制全局变量作用域,只能在当前文件中访问.
extern:
声明外部变量,注意:不能用来定义变量