概述
平时写代码时会用到类的静态函数,但是对于static整体认识并不明朗,今天就对static进行整理。
1、c中static的用法
static在c中的作用主要有两个:限定作用域、保持内容持久化。主要使用的地方有以下几种。
1.1、静态全局变量
语法:在全局变量前面加上关键字static,全局变量就定义成一个静态全局变量。如:static int globleValue;
初始化:未经初始化的静态全局变量会被自动初始化为0(自动对象的值是任意的,除非他被显式初始化)
作用域:静态全局变量在声明它的文件之外是不可见的,这样其它文件可以定义同名全局变量,编译时会对静态全局变量重新命名(尽量不要这样)。
生命周期:整个程序运行期间
内存中位置:静态存储区
test.c
int globleValue = 10; //未加static
static int globleValue2 = 20; //添加static
main.c
#include .......
int main()
{
extern int globleValue; //说明是外部定义,这里只是使用
extern int globleValue2;
cout << globleValue << endl;
}
globalValue的使用没有问题,但是globalValue2会在编译时报错