static关键字

  分类:

  static变量:

    局部static变量:在函数内定义,生存周期为整个源程序,但作用域与自动变量相同,只能在定义的函数内使用。退出函数后,尽管该变量还继续存在,但不能使用

    全局static变量:全局变量本身就是静态存储方式。区别在于,全局静态变量的作用域是本文件内,而全局变量是整个程序(多个源文件)。

  static函数:

    也叫内部函数。只能被本文件中的函数调用。

    静态函数的好处(static静态不是指存储方式,而是指对函数的作用域仅局限与本文件):

      1 速度快:静态函数会被自动分配在一直使用的存储区,直到退出应用程序实例,避免了调用函数时压栈出栈。

      2 不重名:不会与其他文件的函数重名。

 

  static有什么用途?(请至少说明两种)
      1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。
      2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。
      3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用

  总结一下:

  1 隐藏功能,由其作用范围决定

  2 持久性功能,存储在静态区。

原文地址:https://www.cnblogs.com/luntai/p/6137743.html