const

8 篇文章 0 订阅
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 只读变量(不是常量)
   方式一 :
   int const a = 10; // a:只读变量
   方式二 :
   constint a = 10;  // a:只读变量


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

  // const 修饰指针变量
      int * const p = &a; // p: 只读变量 *p: 变量
     const int *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:( int const)a;

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值