1.const
2.static
3.extern
4.宏
5.const与 宏的区别
6.static 和 const 的联合使用
7.extern 和 const 的联合使用
1.const
含义:类型修饰符,用于一般修饰基本变量和指针变量。
作用:
1.修饰基本变量
被consti修饰的基本变量后,其值不可变,相当于常量 。
2.修饰指针变量
2.1 在*的左边
值不可变,指针方向可变。
2.2 在*的右边
值可变,指针方向不可变
3.使用场景
3.1 代替宏,定义为只读常量
3.2 在方法参数里 ,定义为只读,不可修改
2.static
含义:关键词,一般用于修饰变量
作用:
<1>.修饰局部变量
1.延长生命周期,当程序启动时创建,当程序退出时销毁。
2.在整个程序中,只分配一次内存。(存放在静态区中)
3.对局部变量的作用域不影响。
<2> 修饰全局变量
1.被static修饰的全局变量,只能在本文件中能访问。
3.extern
3.extern
作用:仅仅声明一个全局作用,用于其他文件访问
(如果在一个类中定义了一个全局变量,想要在其他类中也访问,那么需要用extern声明在能用)
4.宏
4.宏
含义:预处理指令,(带#开头的都是预处理指令) ,相当与拷贝
作用:一般用于定义一些经常需要用的方法或函数,以及参数。
5.const与 宏的区别
1.编译时刻不同。宏是预编译,const是编译时刻。
2.编译检查。宏不会参与编译检查,const会参数编译检查。
3.关于宏的好处:可以定义一些经常需要用的方法或函数
4.宏的坏处: 加长程序启动的编译时间,不利用调试bug
6.static 和 const 的联合使用
(推荐使用与修饰变量,用于替代宏)
作用:只分配一次内存,不能被修改,且只能在本类中能访问。
7.extern 和 const 的联合使用
1.一般在多人开发中,统一在一个文件中使用,避免冲突。
2.如:在.m 文件中利用const 定义全局变量,在.h文件中利用extern声明
(注意:一般UIKIT_EXTERN (宏) — — UIKIT_EXTERN == extern )
(如:UIKIT_EXTERN NSString *name;)