C语言中static关键字的正确用法。
##C语言中static关键字的正确用法。
如果你想要创建一个带有计数功能的函数,你可以这么写:
1 | int count = 0; |
这段代码功能上没什么问题。但它使用了一个叫count的全局变量。count的作用域是全局。这意味着所有函数都可以修改count的值。在一个大型程序中,需要非常小心的控制全局变量的个数,因为它们可能导致代码出错。
但C语言允许你创建只能在函数局部作用域访问的全局变量。
1 | int counter() |
使用static关键字可以把变量保存在全局量区中(可以当成全局变量),但是当其他函数试图访问count变量时编译器会抛出错误。
如果你调用上面代码中的函数,count的值不会被反复定义(初始化)。
1 | #include <stdio.h> |
##用static定义私有变量或函数。
也可以在函数外使用static关键字,它表示“只有这个.c文件中的代码可以使用这个变量(或函数)”。举个例子:
1 | static int days = 365; |
static关键字可以用来控制变量或函数的作用域。可以防止其他代码以意想不到的方式访问你的数据或函数。