当作用于局部变量时:
用于影响变量生命周期,使其获得与程序一样长的生命周期。
当作用于全局变量时:
改变该变量的外部链接属性,使其变成内部链接属性,即仅该全局变量所在文件可用,其他文件不可用(包括同一工程的其他文件也是不可声明引用的)。
当作用于函数时:
sum.c :
int sum(int x, int y) {
return x + y;
}
main.c : (未引用sum())
#include <stdio.h>
//extern int sum(int x, int y);
int main() {
int a = 1;
a=sum(5, 6);
printf("%d\n", a);
}
运行结果:11
在这个函数当中即使我注释了sum函数但依然能够成功调用。(编译器会自动寻找工程中其他文件是否含有sum()的定义)
函数具有外部链接属性,在sum函数头前加入static,令函数变成具有内部链接属性