的类型可以分为静态局部变量和静态全程变量。 (1)静态局部变量 它与局部变量的区别在于:在函数退出时,这个变量始终存在 但不能被其它函数使用,当再次进入该函数时,将保存上次的结果 其它与局部变量一样。 nt fac(n) nt n (static int f-1 f=fn return(f maint printf("%d!=%dIn", i, fac(i); (2)静态全程变量 静态全程变量就是指只在定义它的源文件中可见而在其它源文 件中不可见的变量。它与全程变量的区别是:全程变量可以再说明为 外部变量( extern)被其它源文件使用,而静态全程变量却不能再被 说明为外部的,即只能被所在的源文件使用 3、 extern extern称为外部变量。为了使全局变量除了在定义它的源文件中 可以使用外,还要被其它文件使用。因此,必须将全程变量通知每一 个程序模块文件,此时可用 extern来说明。 例如 文件1为 filel.c 文件2为fle2c nti,j/定义全程变量* extern int I,j/说明将i,j从 文件1中复制过来* char c extern char c;/*将c复制过来* void funcl (int k) func20/*用户定义函数* maino static float k;/*定义静态变量* *5/100 fungI(20),/*调用函数* k=i/1.5 func20 final(ntk)/*用户定义函数* j=k*100的类型可以分为静态局部变量和静态全程变量。 (1). 静态局部变量 它与局部变量的区别在于: 在函数退出时, 这个变量始终存在, 但不能被其它函数使用, 当再次进入该函数时, 将保存上次的结果。 其它与局部变量一样。 int fac(n) int n; {static int f=1; f=f*n; return(f); } main() {int i; for(i=1;i<=5;i++) printf("%d!=%d\n",i,fac(i)); (2). 静态全程变量 静态全程变量就是指只在定义它的源文件中可见而在其它源文 件中不可见的变量。它与全程变量的区别是: 全程变量可以再说明为 外部变量(extern), 被其它源文件使用, 而静态全程变量却不能再被 说明为外部的, 即只能被所在的源文件使用。 3、extern extern 称为外部变量。为了使全局变量除了在定义它的源文件中 可以使用外, 还要被其它文件使用。因此, 必须将全程变量通知每一 个程序模块文件, 此时可用 extern 来说明。 例如: 文件 1 为 file1.c 文件 2 为 file2.c int i, j;/*定义全程变量*/ extern int i, j;/*说明将 i, j 从 文件 1 中复制过来*/ char c; extern char c; /*将 c 复制过来*/ void func1(int k); func2() /*用户定义函数*/ { main() static float k;/*定义静态变量*/ { i=j*5/100; func1(20);/*调用函数*/ k=i/1.5; func2(); . . . . . . } } func1(int k) /*用户定义函数*/ { j=k*100; }