前言
const/static/extern/typedef/typeof/define的释义和用法
1、const(常量—readonly)
### 作用: const (去掉类型)修饰谁,谁不能改变。
- 用于修饰 右边 的基本变量或指针变量;
- 被修饰的变量只读,不能被修改(readonly);
2、static (静态的)
作用:修饰不同的变量作用不尽相同。
-
成员变量 - 不能修饰成员变量。
- 局部变量 - 可以修饰局部变量,存储到静态存储区。
- 延长局部变量的生命周期,程序结束才会销毁。
- 局部变量只会生成一份内存,只会初始化一次。
- 并没有改变变量的作用域。
- 全局变量 - 只能在当前源文件中访问
- 使全局变量的作用域仅限于当前文件内部,即当前文件内部才能访问该全局变量。
- 避免重复定义全局变量。
- 函数 - 该函数只能在当前源文件中访问
(1)从存储空间来理解分为:程序区、静态存储区、动态存储区。 其中静态存储区为存储静态变量,变量从创建开始就一直存在,直到程序结束销毁;动态存储区,存储动态变量,如函数中创建的动态变量,随着函数结束就销毁了。
(2)对于一个数据的定义,需要指定两种属性:存储类型和数据类型。 static int a; (static为存储类型,int 为数据类型) auto char c; (auto为存储类型,char为数据类型)
(3)按照作用域来分:
3、extern
用extern修饰符修饰的变量或者函数,表示“此变量或者函数在其它文件已经定义,在这里只做引用处理”。