extern 用法汇集

来源:互联网 发布:手机游戏网络稳定软件 编辑:程序博客网 时间:2024/04/27 19:27

 

带有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;

原创粉丝点击