问题:static 和 extern 修饰变量和函数时有什么作用?请举例说明。
static
简单来说,static 关键字有两个作用:
- 限制变量的作用域
- 设置变量的存储域
具体来说,在不同的使用场景有不同的表现。(函数名也是变量)
静态全局变量
用 static 声明静态全局变量:限制本文件外使用
static int a;
定义全局变量时加一个 static 声明,该变量只限于被本文件引用,而不能被其他文件引用。
静态全局变量和全局变量一样存放在静态区。
静态局部变量
使用 static 修饰局部变量,会改变其存储方式(栈空间 -> 静态区)。
int