extern 用法汇集

 

带有extern的变量,其不用加头文件,编译器会自动去其他文件中查找,并进行调用。值得注意的两点:

(1)    带有初始值的extern声明,是一种定义;

如:extern int ival=10;//定义变量ival

等同于:int ival=10;

(2)    extern声明必须与其定义分属于不同的文件;

如:extern int ival;

           int ival=10;

是错误的写法。

1.      extern声明变量

基本形式:extern int ival;

如:在文件file_1.cpp中定义:int ival=10;

在文件file_2.cpp中定义:extern int ival;

那么file_2.cpp即指file_1.cpp中的ival

但若file_3.cpp中有int ival=20;结果如何呢?

 

出现了重定义-虽然我们没有加任何头文件。笔者程序例子是counter而已。

2.      extern+static用法

解决1中的办法呢?很简单在file_3.cpp中有static int ival=20;便可以了。因为加上static后其作用域仅仅是file_3.cpp这个文件。

3.      extern+const用法

加上const的全局变量仅仅对其所在文件有用。在定义时加上extern来说明其为其他文件所用:

//file_1.cpp

extern const int ival=100;

//file_2.cpp

extern const int ival;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值