全局变量和宏的使用的简单对比
- 1.全局变量存在的问题:使用变量时,值有可能会被修改,所有推荐使用const关键字修饰变量。
- 2.宏:宏定义的变量,不可被修改,但有时会产生很多临时的变量。
- 3.使用背景:
- 被const修饰的变量会变成常量,const一般用在函数参数的声明中。在编译时能确定值的情况,用const比宏合适。在运行时才能确定值的,不能用const,用宏合适。
- 例如:
// 1.在编译时能确定值的情况,用const比宏合适。例如:定义cell的tag标签时。
/* 全局变量,(全局,static只有一块内存空间、const不可变) */
static NSString * const LSLTagCellID = @"tag";
// 2.在运行时才能确定值的,不能用const,用宏合适。例如:当定义一个快速获取颜色的方法时,使用宏。