juliusun.com
第 47/50 节 冥河C语言教程
static关键字根据情况不同,作用不同:1、描述全局变量或函数:被描述的对象不允许外部源文件通过extern关键字引用;2、作用于局部变量:不重新分配空间,保存上一次更改,前面 static应用之全局部 讲过。
本节主要讲述第1种描述全局变量或函数用法。
被static关键字描述的变量称作静态变量,函数称为静态函数,static关键字用法简单,在函数或变量的类型名前加上static关键字,并用空白字符与类型隔开即可,如:static int i;
第一个作用描述全局变量或函数,与一节内容有联系。任何全局变量或函数,可以在其它源文件中通过extern关键字引用,static关键字描述除外。
例编译器编译一个项目中的两个文件,a.c和b.c,a.c定义全局变量代码如下:
b.c通过extern关键字引用a.c的全局变量i会出现错误,代码如下:
static经常使用的情况有多种,如:保护本源文件全局变量或函数的私密性、多个源文件存在同名函数或全局变量时通过static排除extern引用干扰。
多个源文件存在同名函数或全局变量时通过static排除extern引用干扰,如一个项目中有3个源文件分别是a.c、b.c和c.c,a.c和b.c都定义了全部变量 i ,c.c需要引用a.c中的i,如果没有static关键字,那么c.c通过如下代码:
为了保证c.c正常引用a.c中的外部变量 i,除了修改b中的变量名之外,可以在b.c中用static修饰i,使i仅限本文件使用,编译器就会顺利找到a.c中的变量 i 了。毕竟,代码量大以后,修改变量名可能导致不必要的麻烦。
由于static关键字描述全局对象时,用法及作用比较简单,本节不在详细介绍,下一节介绍其描述局部变量的作用。