C中的静态函数和变量

Lio*_*ior 0 c variables static function

我知道在面向对象语言中使用静态变量的目的是什么,但是,我不明白在C中使用"static"关键字的含义是什么.有人能解释一下吗?

ick*_*fay 8

在函数或全局变量上,static使函数或全局变量对该文件是本地的; 其他文件无法通过该名称访问该函数或全局变量(但如果您指定它,它们可以访问它).

在一个局部变量上,它使它看起来好像是一个全局变量,但只能在该函数中访问(除非再次给出一个指向它的指针).

  • @GrijeshChauhan:有人可能希望创建一个头文件来声明一个表示模块初始化状态的静态布尔值(当然,初始化为false),然后提供宏,这样可以很容易地定义函数来初始化模块,除非它已经被初始化了. (2认同)