static和extern关键字
(1)定义变量:static可以用来修饰局部变量以扩展局部变量的生存期,生存期为程序的整个生命周期,在退出函数时保持其值,作用域在函数体内;static定义的全局变量只能在该文件中使用;extern将变量声明为外部变量,可以在其他文件中使用。
(2)定义函数: static可以把函数声明为内部函数(静态函数),只能在本文件中使用;extern声明此函数为外部函数,可以供其他文件使用,定义函数时默认为外部函数,在一个文件中要调用其他文件的外部函数,则需要在文件中用extern声明该外部函数。
e.g 文件exam1.c中定义
Int A;
文件exam2.c中
extern int A;//作用域扩大,不在分配内存
(3)extern的另外用法是当C和C++混合编程时,如果C++调用的是C源文件定义的函数或者变量,那么要加extern来告诉编译器用C方式命名函数:
e.g extern “C” //在C++文件里调用C文件中的变量i和函数max_out()
{
Int i;
void max_out();
}