static关键字:
在不同的上下文环境,static 关键字具有不同的作用效果,具体如下:
- 当它作⽤用于函数定义或者⽤用于代码块之外的变量量声明时,static 关键字⽤用于修改标示符的链接属性。外部链接属性变为内部链接属性,标识符的存储类型和作⽤用域不受影响。也就是说变量或者函数只能在当前源⽂文件中访问,不能在其他源⽂文件中访问。
- 当它⽤用于代码块内部的变量量声明时,static关键字⽤用于修改变量的存储类型。从自动变量量变为静态变量量。变量的链接属性和作⽤用域不受影响。
extern关键字:
关键字 extern 可以置于具有外部链接属性的变量和函数前,以标识变量和函数在其它文件中被定义,提示编译器在本文件中遇到被 extern 修饰的变量和函数时在其他文件中寻找。简单的使用如下
//Add.c int val = 100; int Add(int x,int y) { return x + y; } //main.c #include<stdio.h> extern int val; extern Add(int,int); int main() { printf("%d\n", val); printf("%d\n",Add(1,2)); return 0; }