C++关键字——extern

C/C++中extern关键字详解

一个很容易忽略的关键字

基本解释

extern可以放在变量或者函数前。表示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找定义。此外exrtern也可以用来进行链接指定。

1. 用作外部变量的声明与使用

如果在多个文件中使用外部变量,只需在一个文件中包含该变量的定义(单定义规则),但在使用该变量的其他所有文件中,都必须使用extern声明它:

//file01.cpp
extern int cat = 20; //定一个flag变量并初始化
int dog = 22;
int fleas;
//file02.cpp
//使用file01的cat和dog
extern int cat;
extern int dog;

在上述例子中,因为file02并没有声明fleas变量,因此无法使用,但是声明了catdog,因此可以使用这两个变量。由此可见,关键字extern并非必不可少的,因为即使省略它,效果也相同。

2、函数的声明

函数的声明中extern关键字是可有可无的,因为函数本身不加修饰的话就是extern。但是引用的时候一样需要声明。

3、可以多次声明,但是定义只能一次

extern int i; //声明,不是定义
int i; //声明,也是定义
上一篇:深度阅读:详细剖析 extern "C"


下一篇:C++中的extern“C”