静态全局变量不能被其它文件所用;(好像是区别 extern 的)
其它文件中可以定义相同名字的变量,不会发生冲突;
您可以将上述示例代码改为如下:
//Example 2
//File1
#include <iostream.h>
void fn();
static int n; //定义静态全局变量(只能在本文件中使用)
void main()
{
n=20;
cout < <n < <endl;
fn();
}
//File2
#include <iostream.h>
extern int n;(可在别的文件中引用这个变量)
void fn()
{
n++;
cout < <n < <endl;
}编译并运行 Example 2,您就会发现上述代码可以分别通过编译,但 link 时出现错误。试
着将 static int n; //
定义静态全局变量