c语言-static关键字

总结一下static关键字用法:

类别         使用方式                          区别与联系

局部变量

(static改变生命周期)

int  A;

初始值:编译器一般不会对普通变量进行初始化;

生命周期:普通局部变量存储于进程栈空间,使用完毕会立即释放。

作用域:局部作用域,作用在{ }之间

static  int  A;

初始值:当没有赋值的时候,编译器会把它初始化为0

生命周期:变量在全局数据区分配内存空间

作用域:  为局部作用域,当定义它的函数结束时,其作用域随之结束

全局变量

(static改变作用域)

int A;

初始值:全局变量定义在函数体外部,在全局数据区分配存储空间,且编译器会自动对其初始化

生命周期:整个程序存在周期

作用域:  普通全局变量对整个工程可见,其他文件可以使用extern外部声明后直接使用

static  int  A;

初始值:全局变量定义在函数体外部,在全局数据区分配存储空间,且编译器会自动对其初始化

生命周期:整个程序存在周期

作用域:  静态全局变量仅对当前文件可见,其他文件不可访问,其他文件可以定义与其同名的变量,两者互不影响。

函数

(static改变作用域)

void fuction() 作用域:非静态函数可以在另一个文件中直接引用,甚至不必使用extern声明
static void fuction()

作用域:1.静态函数只能在声明它的文件中可见,其他文件不能引用该函数

              2.不同的文件可以使用相同名字的静态函数,互不影响

参考:

https://blog.csdn.net/guotianqing/article/details/79828100

https://www.runoob.com/w3cnote/cpp-static-usage.html

猜你喜欢

转载自blog.csdn.net/weixin_39752599/article/details/109479625
今日推荐