iOS 宏(define)与常量(const)的理解
来源:互联网 发布:手机excel软件 编辑:程序博客网 时间:2024/05/16 11:57
define和const
在iOS开发中经常会用到define和const。下面我们就来看看宏(define)和常量(const)的区别:
* define只是在预编译时进行文本替换,const是在编译阶段。
* define没有任何的类型检查,所以在类型错误的时候是不会有提示。const是有类型检查的会有错误提示。
* define不仅可以定义常量,还可以定义方法。而常量(const)只能定义常量,不能定义方法。
* const修饰具有就近性,即const后面的参数是不可变的。const修饰的参数具有只读性。
* 大量的define会导致二进制文件变大。从而导致编译时间变长
*编译器通常不为普通const常量分配存储空间,而是将它们保存在符号表中,这使得它成为一个编译期间的常量,没有了存储与读内存的操作,使得它的效率也很高
//注意 const是常量声明,保证其不可修改。需要区分的是const位置不同的效果:const NSString *text = @"abcde"; //*text指针不能修改,text可以修改。NSString * const text = @"abc"; //*text指针可以修改,text不能修改。
extern
- extern修饰的一个全局变量,多个文件都可以访问
- 用extern修饰的变量必须要定义,而且只能定义一次。通常将其定义在与声明该常量的头文件相关的而实现文件里。有实现文件生成目标文件时,编译器会在数据段为字符串分配存储空间
.hextern NSString *const Test;.mNSString *const Test = @"www.baidu.com”;//这样定义常量要优于使用#define预处理指令,因为编译器会确保常量值不变。一旦 .m 文件中定义好了,即可随处使用,而采用预处理指令定义常量可能会无意中修改,从而导致应用程序各个部分使用的值互不相同。
阅读全文
1 0
- iOS 宏(define)与常量(const)的理解
- iOS中宏(define)/常量(const)/变量的理解
- iOS 宏(define)与常量(const)的正确使用
- const(常量)与define(宏)的正确使用
- iOS 宏(define)与常量(const)使用
- iOS 宏(define)与常量(const)的正确使用
- iOS 宏(define)与常量(const)的正确使用
- iOS 宏(define)与常量(const)的正确使用
- iOS 宏(define)与常量(const)的正确使用
- iOS 宏(define)与常量(const)的正确使用
- iOS 宏(define)与常量(const)的正确使用
- iOS 宏(define)与常量(const)的正确使用
- iOS 宏(define)与常量(const)的正确使用
- iOS 宏(define)与常量(const)的正确使用
- iOS 宏(define)与常量(const)的正确使用
- iOS 宏(define)与常量(const)的正确使用
- iOS 宏(define)与常量(const)的正确使用
- iOS 宏(define)与常量(const)的正确使用
- input readonly属性,去掉焦点
- Java如何获取xml文件中子节点的属性
- 第七节:WebDriver的一些常用操作
- 父子物体中,局部坐标系与世界坐标系的区别
- 旧版本eclipse安装旧版本maven、server等插件,简单粗暴的办法
- iOS 宏(define)与常量(const)的理解
- linux find 通配符(新人向)
- 字符串练习14_大小写字母互换
- Mybatis快速入门
- 记录一个简单SpringBoot项目的创建过程
- 创建型模式之单例模式
- android exoplayer实现左右滑动屏幕快进快退
- 一个异常:java.lang.NoClassDefFoundError
- [笔记分享] [Display] MIPI 协议之PHY