static
-
修饰变量: 使变量存储在静态区,变量只初始化一次,生命周期是整个程序
- 静态全局变量:作用域只在该文件,普通全局变量整个程序有效
- 静态局部变量:作用域只在函数中,存储静态区,函数结束时变量值不变,下次调用该函数值接着用
-
修饰普通函数:函数的作用范围只在文件内
-
修饰成员变量:静态成员变量是唯一的、可共享的成员变量
-
存储在静态区,只有一份实体,同一个类的所有对象可访问,没有对象使用“类名:静态成员变量”访问
-
静态成员变量必须在类外进行初始化
-
-
修饰成员函数:静态成员函数是不需要对象就可以访问该函数
- 静态成员函数和静态成员变量一样,不属于类,所以静态成员函数不含 this 指针,也就无法访问类的非静态成员
静态数据成员与全局变量相比的优势
- 静态数据成员没有进入程序的全局命名空间,因此不存在与其他全局变量名字冲突的可能;
- 使用静态数据成员可以隐藏信息。因为静态数据成员可以是 private 成员,而全局变量不能;
简述static对于工程模块化的作用。
static可以让全局变量或函数的作用域限制在当前模块,不会与其他模块发生冲突。
因为在嵌入式系统中,一个程序可能是很多程序员共同完成的,在定义变量及函数的过程中,可能会重命名,给系统集成带来麻烦。