学无止境……
分类: C/C++
2014-06-27 08:33:23
C语言中 static 关键字有多种作用,它可以修饰变量和函数,在作用不同对象时有不同的效果。下面分别介绍 static 修饰 全局变量、局部变量 和 函数 的作用/效果。
被 static 修饰的变量将被存储到 静态存储区(静态存储区内变量在整个程序运行期间都 存在/有效),但其作用域不会扩展。修饰局部变量的作用:
点击(此处)折叠或打开
- #include<stdio.h>
- int fun()
- {
- static n = 0; //只被初始化一次
- n++; //在fun()函数中的 n 覆盖 main 中的 n 。
- return n;
- }
- int main()
- {
- int i, n = 1;
- for (i = 0 ; i < 3; i++)
- {
- printf("fun()_n:%d , main_n: %d \n", fun(), n);
- }
- return 0;
- }
运行结果如下:
fun()_n:1 , main_n: 1
fun()_n:2 , main_n: 1
fun()_n:3 , main_n: 1
static修饰函数的作用类似修饰全局变量的“限制”作用。被定义为静态的函数将不能被其他原文件调用,即被"隐藏".利于函数的封装和防止函数名污染。