c/c++中static关键字的总结

来源:互联网 发布:调查报告 知乎 编辑:程序博客网 时间:2024/05/30 23:02

static局部变量:

1、改变了变量的存储方式(从栈区变成全局区),即改变了变量的生命周期。

2static局部变量只初始化一次,没有显示初始化时默认为0,在某个函数中,下一次    的值依据上一次的值。

static全局变量

1、全局变量前面加上static,存储方式没有改变。

2、static全局变量改变了作用域,限制了使用范围,只能在定义了该变量的源文件有效,    在同一源程序的不同源文件中不能使用,即本地的全局变量。非静态全局变量在同一源程序的不同源文    件中都是有效的。

3、static全局变量只初始化一次,没有显示初始化时默认为0

static函数

1static函数限制了使用范围,只能在当前源文件中使用,相当于内部函数。c++类中,    为了避免不同类中相同名字函数的重定义错误,在函数前面加上static

2static函数在内存中只保存一份,普通函数在每个被调用中维持一份拷贝

 

 

 注:引用一个已经定义过的全局变量:

1、引用头文件

将全局变量写错了,将会在编译的时候报错。

在不同的.c文件中以static形式声明同名的全局变量,在不同的.c文件中声明同名 全局变量时,只能有一个.c文件中对其赋值,否则链接出错。

2、extern关键字

将全局变量写错了,编译的时候不会报错,链接的时候会报错。

 

 


0 0
原创粉丝点击