const变量

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


在全局作用域里定义非 const 变量时,它在整个程序中都
可以访问。我们可以把一个非 const 变更定义在一个文件中,假设已经做了合
适的声明,就可在另外的文件中使用这个变量:
// 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 变更为 extern,就可以在整个程序中访问 const 对象:
// 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。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值