const

来源:互联网 发布:数据整合 编辑:程序博客网 时间:2024/05/07 19:37
const与宏的区别
常见用法:
1.常用的字符串抽成宏
2.常用的代码抽成宏

宏的命令规范:以项目前缀开头,Key结尾
#define DDAccountKey @"account"

#:预编译
#define DDUserDefaults [NSUserDefaults standardUserDefaults]


const:常量
    const:当有字符串常量的时候,苹果推荐我们使用const
 
    const
与宏的区别
    1.
编译时刻::预编译const:编译时刻
    2.
编译检查::不会检查错误const:会检查错误
    3.
宏的好处:可以定义代码
    4.宏的坏处:编译时间过长,因此常用的字符串通常使用const修饰
   (经常使用宏不会造成内存不段增加,每次使用宏,会多次分配内存,多次使用同一宏,指向的是同一地址,宏定义的是常量,常量都放在常量区,只会生成一份内存。

苹果经常把常用的字符串定义成const
全局变量(不加const)
NSString*const DDAccountKey =@"account";


const作用:限制类型
 1.仅仅是用来修饰右边的变量(只能修饰变量:基本变量,指针变量,对象变量)
 2.const修饰的变量,表示只读
 const书写规范:一定要放在变量的左边

const修饰基本变量
    定义int只读变量(不是常量)
   方式一:
   intconst a = 10; // a:只读变量
   方式二:
   constint a = 10; // a:只读变量


 p的指针指向a的地址,再指向b的地址,修改p指向地址的值,b的值被修改

 //const修饰指针变量
     int *const p = &a;// p:只读变量 *p:变量
     constint *p = &a; // *p:只读变量 p:变量a变量只读)
    
intconst *p = &a;// *p:只读 p:变量
    
intconst *const p = &a;// *p:只读 p:只读
     constint *const p = &a;// *p:只读 p:只读


 const开发中使用场景
 1.定义一个全局只读变量
 2.在方法中定义只读参数(不能改传过来的参数)
 修饰对象
- (void)test:(NSString * const)name;

 修饰基本变量
- (void)test1:(intconst)a;

  修饰指针变量
- (void)test2:(intconst *)p

0 0
原创粉丝点击