宏定义
作用:
- 通常定义常用字符串、常见基本变量,使用宏定义
- 宏好处:可以定义函数、方法,const不可以
- 宏坏处:大量使用宏,会导致预编译时间过长
const
const 作用:
- 修饰右边基本变量或者指针变量
- 被const修饰变量为只读不能再修改
使用:
- 修饰全局变量
- 修饰方法中的参数(不被串改)
宏定义与const区北
- 编译时刻:宏:预编译;const:编译时
- 编译检测:宏:没有编译检测;const:有编译检测
static
作用:
- 修饰局部变量,被static修饰的局部变量,延长生命周期,跟整个应用程序有关;被static修饰的局部变量,只会分配一次内存
- 修饰全局变量:被static修饰的的全部变量,作用域会修改,限定作用域,只能在当前文件下使用。
被static修饰的局部变量怎样分配变量?
程序一运行就会给static修饰的局部变量分配内存
extern
extern作用:声明外部全局变量,注意:extern只能用于声明,不能用于定义
extern工作原理:先会在当前文件下查找有没有对应的全局变量,如果没有,才会去其他文件查找。
全局变量和static修饰的变量一样,程序一运行就会分配内存