c中的static

static的作用

1)保持变量值:在函数体,一个被声明为静态的变量在这一函数中可以维持其值。这句话可能描述不太准确,大家看下面这个例子吧。

void   staticLocalVar()   
  {   
    static   int   a   =   0;   //   运行期时初始化一次,   下次再调用时,   不进行初始化工作   
    cout<<"a="<<a<<endl;   
    ++a;   
  }   
    
  int   main()   
  {   
    staticLocalVar();   //   第一次调用,   输出a=0   
    staticLocalVar();   //   第二次调用,   记忆了第一次退出时的值,   输出a=1   
    return   0;   
  }   


2) 对其他模块(文件)隐藏该变量(方法),相当于限定其变量或方法的作用域——只在定义它的文件中可用。

   

  注意:

  a,必须用static的场合:函数返回指针,应该返回static类型的变量指针。

  b,避免用static的场合:可重入函数应该避免使用static类型变量。

原文地址:https://www.cnblogs.com/flying607/p/3395412.html