守望远方

热爱生活 热爱工作 守望远方
《C++ Primer》笔记-const与extern
一般变量:如我在file_1.cpp中定义了一个变量,在file_2.cpp中我想使用它,那么我只需要在file_2.cpp中用extern声明它就可以用了:
 // file_1.cc
      int counter;  // definition
      // file_2.cc
      extern int counter; // uses counter from file_1
      ++counter;          // increments counter defined in file_1
const变量:除非特别说明,const变量只作用与file1中,不能被其他文件访问。
此时若还想在file2中使用它,那么在file1中也要声明它为extern的。

// file_1.cc
// defines and initializes a const that is accessible to other files extern const int bufSize = fcn();
// file_2.cc
extern const int bufSize; // uses bufSize from file_1
// uses bufSize defined in file_1
for (int index = 0; index != bufSize; ++index)

// ... 

本程序中,file_1.cc 通过函数 fcn 的返回值来定义和初始化 bufSize。 而 bufSize 定义为 extern,也就意味着 bufSize 可以在其他的文件中使用。 file_2.cc 中 extern 的声明同样是 extern;这种情况下,extern 标志着 bufSize 是一个声明,所以没有初始化式。 

非 const 变量默认为 extern。要使 const 变量能够在其他的 文件中访问,必须地指定它为 extern。 

posted on 2012-12-27 10:17  守望远方  阅读(412)  评论(0编辑  收藏  举报