static的用途
2018-04-01 15:26
148 查看
static的用途:让一个变量长期有效,而不管其是在什么地方被申明。比如:
int fun1() { static int s_value = 0; .... } 那么fun1不管在什么地方被调用,当函数退出后,s_value最后的值将一直会被系统保存(相当于一个全局变量),下次s_value再被用到时,也即当fun1()再次被调用时,s_value初始值将是最近被保存过的值(请注意s_value初始化操作只会被执行一次,即上述s_value =0 这个语句)。
2.避免多个文件使用了相同的变量名而导致冲突 比如有多个文件,分别由几个人独立开发的。假定他们在各自的文件中定义相同的“全局”变量名(仅仅指在他们独自的文件中全局),当系统集成时,由于他们使用了名字一样的“全局”变量,导致有难于遇见的问题。解决这个问题方便的做法就是在各自文件中,在相同的全局变量申明前加上static修饰符。这样系统就会为他们分配不同的内存,互不影响了。
static和extern定义的变量都是在静态存储区分配存储单元的。在C语言中可以同时建立多个文件,可将不让其他文件引用的本文件中的全局变量都加上static,成为静态全局变量(文件中的全局变量,但是对文件外屏蔽),对其他文件屏蔽起来,而extern的功能刚好相反。
int fun1() { static int s_value = 0; .... } 那么fun1不管在什么地方被调用,当函数退出后,s_value最后的值将一直会被系统保存(相当于一个全局变量),下次s_value再被用到时,也即当fun1()再次被调用时,s_value初始值将是最近被保存过的值(请注意s_value初始化操作只会被执行一次,即上述s_value =0 这个语句)。
2.避免多个文件使用了相同的变量名而导致冲突 比如有多个文件,分别由几个人独立开发的。假定他们在各自的文件中定义相同的“全局”变量名(仅仅指在他们独自的文件中全局),当系统集成时,由于他们使用了名字一样的“全局”变量,导致有难于遇见的问题。解决这个问题方便的做法就是在各自文件中,在相同的全局变量申明前加上static修饰符。这样系统就会为他们分配不同的内存,互不影响了。
static和extern定义的变量都是在静态存储区分配存储单元的。在C语言中可以同时建立多个文件,可将不让其他文件引用的本文件中的全局变量都加上static,成为静态全局变量(文件中的全局变量,但是对文件外屏蔽),对其他文件屏蔽起来,而extern的功能刚好相反。
相关文章推荐
- static的两种用途
- 【我解C语言面试题系列】001 static有什么用途?
- static的用途分析
- static,const和typedef关键字的几种用途
- 【我解C语言面试题系列】001 static有什么用途?
- Python 基础 —— @classmethod 与 @staticmethod 的意义及用途
- C++中const,static,inline的用途
- static和final的区别与用途
- 深入static的用途?
- static 类型声明符在C语言里面主要有三个用途
- static用途
- static的用途
- static有什么用途
- 关键字static的用途
- static的用途
- c#中 static public void 它们的用途与区别
- java中static、this、super、final用途、用法及实例
- static的用途
- static有什么用途?(请至少说明两种)
- C++中static关键字的用途