#3. static关键字

想象你要创建一个带有计数功能的函数,可以这么写:

#3. static关键字 - 图1

这段代码有什么问题吗?它使用了一个叫count的全局变量。因为count在全局作用域,所以其他函数可以修改它的值。如果你在写一个大型程序,就需要小心控制全局变量的个数,因为它们可能导致代码出错。好在C语言允许你创建只能在函数局部作用域访问的全局变量:

#3. static关键字 - 图2

static关键字会把变量保存在存储器中的全局量区,但是当其他函数试图访问count变量时编译器会抛出错误。

用static定义私有变量或函数

也可以在函数外使用static关键字,它表示“只有这个.c文件中的代码能使用这个变量(或函数)”。例如:

#3. static关键字 - 图3

static关键字用来控制变量或函数的作用域,防止其他代码以意想不到的方式访问你的数据或函数。