staticextern关键字

 (1)定义变量:static可以用来修饰局部变量以扩展局部变量的生存期,生存期为程序的整个生命周期,在退出函数时保持其值,作用域在函数体内;static定义的全局变量只能在该文件中使用;extern将变量声明为外部变量,可以在其他文件中使用。

 (2)定义函数: static可以把函数声明为内部函数(静态函数),只能在本文件中使用;extern声明此函数为外部函数,可以供其他文件使用,定义函数时默认为外部函数,在一个文件中要调用其他文件的外部函数,则需要在文件中用extern声明该外部函数。

e.g  文件exam1.c中定义

     Int  A

     文件exam2.c

     extern  int  A//作用域扩大,不在分配内存

3extern的另外用法是当CC++混合编程时,如果C++调用的是C源文件定义的函数或者变量,那么要加extern来告诉编译器用C方式命名函数:

 e.g  extern C //C++文件里调用C文件中的变量i和函数max_out()

     {

       Int  i;

       void  max_out();

     }