background image

静态全局变量不能被其它文件所用;(好像是区别 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; //

 

定义静态全局变量