1. 对于文件作用域变量,用static区分是外部链接还是内部链接:
int giants = 5; //文件作用域,外部链接
static int dodgers = 3; //文件作用域,内部链接
int main()
{
...
}
2. 对于块作用域变量,static使其具有静态存储期:
void more(int number)
{
int index;
` static int a = 0; //块作用域的静态变量
...
return 0;
}
3. 用static创建静态函数:
double gamma(double); //默认为外部函数
static double beta(int, int); //静态函数
extern double delta(double, int); //for clarity
外部函数可被其他文件使用;
静态函数只能用于其定义所在的文件,在其他文件使用同名函数,可避免名称冲突。