一,define
define 是预编译指令,在程序运行前就定义好了,然后把所有 define 的变量对应的值替换成你定义的样子,运行的时候直接用,但是会消耗内存,每替换一个就会开辟一块内存空间,浪费内存空间
1.1优点:
宏定义,方便修改,提高运行效率
1.2缺点:
1)定义常量没有数据类型
2)编译器对define只进行字符替换,没有类型安全检查,并且在字符替换中可能会产生意料不到的错误
3)define – 不分配内存,给出的是立即数,有多少次使用就进行多少次替换,在内存中会有多个拷贝,消耗内存大
二,const
像这样被 const 修饰的 NSString *const name = @"name";
name 是不能被改变的,程序运行时,name 被初始化,之开辟一块空间,节约资源
2.1优点:
1)const定义常量是有数据类型的
2)编译器可以对const进行类型安全检查
3)const – 在静态存储区中分配空间,在程序运行过程中内存中只有一个拷贝
2.2缺点: