extern  : extern  int  i; // declares but does not define i

int i;         //declares and defines i

extern 声明不是定义, 也不分配存储空间。它只是说明变量定义在程序的其他地方。程序中变量可以声明多次, 但只能定义一次。

定义: 定义是负责创建与名字相关的实体。

变量声明规定了变量的类型和名字, 在这一点上定义与之相同。 但是除此以外, 定义还需申请内存空间, 也肯能会同时给变量赋初值。

声明和定义之间的区别可能看起来微不足道,但是事实上确是举足轻重的。

任何多个文件中使用的变量都需要有定义分离的声明, 在这种情况下, 一个文件含有变量的定义, 使用该变量的其他文件则包含该变量的声明。

const 对象默认为文件的局部变量。

除非特别声明, const 在全局作用域声明的变量,是那个定义该对象文件的局部变量。 此变量只存在于那个文件中不能被其他文件访问。

通过制定const变量为extern, 就可以在整个程序中访问const 对象。

//file_1.cc

//define and initializes a const that is accessible to other files

extern const  int bufSize =fcn();

// file_2.cc

extern const  int bufSize;

//use bufSize defined in file_1

for (int index =  0 ; index != bufSize; ++index)

//…..

最新文章

  1. (实例篇)PHP实现HTTP断点续传的方法
  2. [bzoj1597][usaco2008 mar]土地购买 (动态规划+斜率优化)
  3. [C++] socket - 6 [API互斥事件对象实现线程同步]
  4. log4j.xml配置文件
  5. 点(Dot)与像素(Pixel)的区别
  6. 《Effective C++》学习笔记条款13 以对象管理资源
  7. Android中BroadCast与Activity之间的通信
  8. objectivc-c---block
  9. 基于PCA的特征提取
  10. MFC知识点整理
  11. valuechange(动态的监听input,textarea)
  12. PHP Server Nginx 安装
  13. ffplay.c函数结构简单分析(画图)
  14. Centos7 时区的设置
  15. 【转载】利用window.performance.timing进行性能分析
  16. iOS业务模块化利用CocoaPod入门实践
  17. golang初识4 - Go 并发
  18. mysql ANSI_QUOTES 这个sql_mode的作用(字段可以使用双引号)
  19. webpack 自动发现 entry 的配置和引用方式
  20. Cookies读写

热门文章

  1. Eclipse 运行程序
  2. python 装饰器 (多个参数的函数,带参数的装饰器)
  3. WPF的本质:数据和行为
  4. socket编码问题
  5. 网易2016研发project师编程题
  6. mybatis基础,mybatis配置文件核心组件typeAliases元素
  7. PHP连接MySQL数据库操作
  8. 关于浏览器内核与javascript引擎的一些小知识
  9. 次小生成树模板(poj1679)
  10. E - Rails (栈)