C语言中,可以在全局作用域中使用static关键字:被static关键字修饰的变量或函数,仅在本".c文件"中可见,而在其他".c文件"中,不可见。例如,在t1.c中的全局作用域,定义static函数func,则在t2.c中,无法使用t1.c中定义的func函数,即使在t2.c中,使用extern关键字声明了func函数。
实验代码如下:
1、默认使用extern修饰符
/*file:t1.c*/
/*定义函数func,此时没有使用任何修饰符,
**所以默认使用extern修饰
*/
void func(){}
/*file:t2.c*/
/*声明func函数,该函数在t1.c中定义
**由于声明的是函数,所以,此时extern关键字,可以省略
*/
extern void func();
int main(){
func();//调用func函数
return 0;
}
编译结果:
编译通过
2、使用static修饰后,则仅在本".c文件"中可见
/*file:t1.c*/
/*定义函数func,此时使用static修饰*/
static void func(){}
<