深入理解C++中变量的存储类别和属性

2020-01-06 13:47:29王冬梅

用extern扩展全局变量的作用域,虽然能为程序设计带来方便,但应十分慎重,因为在执行一个文件中的函数时,可能会改变了该全局变量的值,从而会影响到另一文件中的函数执行结果。

用static声明静态外部变量

有时在程序设计中希望某些外部变量只限于被本文件引用,而不能被其他文件引用。这时可以在定义外部变量时加一个static声明。例如:

file1.cpp

 

 
  1. static int a=3;  int main ( ) 
  2. {  ┆ 

file2.cpp

 

 
  1. extern int a;  int fun (int n) 
  2. {  ┆ 
  3. a=a*n;  ┆ 

在filel.cpp中定义了一个全局变量a,但它用static声明,因此只能用于本文件,虽然 在cpp文件中用了“extern int a;”,但file2.cpp文件中仍然无法使用filel.cpp中的全局变量a。