C语言中的static关键字

      在C语言中,static关键字的引入最先是为了表示 退出一个块后(即退出某个函数之后)仍然存在的局部变量。随后,C中的static 有了第二种含义:用来表示不能被其他文件访问的全局变量和函数。

      static 对三个东西进行修饰:局部变量、全局变量、函数。

1、修饰局部变量

     static 修饰局部变量时,表示这个变量在这个函数退出之后并不消失,当再次进入这个函数时,这个变量中存放的值还是和退出时候的值一样。当由于它只是一个局部变量,所以它不能被其它函数使用。

2、修饰全局变量

     static 修饰全局变量时,使用的是static 关键字的第二种含义,即这个全局变量不能在其他文件中被使用,即使使用extern 关键字也不行。

3、修饰函数

     修饰函数的时候也是表示这个函数不能被这个文件之外的文件使用,即使使用extern 关键字也不行。

参考文献:

[1]  陈正冲, 石虎. C语言深度剖析.pdf,第1.3节.

原文地址:https://www.cnblogs.com/wangshuo/p/2025647.html