静态变量我们和熟悉,是定义在静态存储区的数据,每次修改后可以保持数值的不变
但是定义静态函数的作用是什么呢?
定义了静态函数后,外部文件无法使用该函数了,同样的是定义静态变量后,外部文件同样不能使用
在工程中,通常各个模块分开完成,这时候如果确定自己定义的函数别的文件不会使用,就可以加上static,
以保证不会被误用
例如:
file1.c
#include<stdio.h>
static int a=1; //a can not used in file2.c too ,static can only use in this file
void fun1()
{
printf("I am in fun1!/n");
}
static void fun2()
{
printf("I am in static fun2!/n");
}
file2.c
extern void fun1();
//extern void fun2();
//extern int a;
main()
{
fun1();
// printf("a=%d",a);
// fun2();
}
如果使用了fun2()时候,编译时候会报告fun2()未定义