在C/C++中static和extern都可以用来修饰函数和变量,但是是有区别的。
内部函数和内部变量:只能在文件内使用的函数和变量。
外部函数和外部变量:能够被其它文件使用的函数和变量。
static
1 对函数
定义一个内部函数
static void test()
{
}
声明一个内部函数
static void test();
2 对全局变量
定义一个内部变量
static int a;
3 对局部变量
定义一个生命周期较长的局部变量。
void test()
{
static int a=0;
}
注意:多次调用test方法变量a只会初始化一次,程序退出的时候才会销毁。
extern
1 对函数
完整的定义一个外部函数(可以省略)
extern void test()
{
}
完整的声明一个外部函数(可以省略)
extern void test();
2 对变量
声明一个外部变量 (不能省略)
extern int a;(声明一个外部变量)
int a; (定义一个外部变量)
原文地址:http://blog.csdn.net/hahahacff/article/details/39853005