一. 概述
extern是在外部定义的全局变量,其作用域是从变量的定义处开始,到本程序文件的末尾。在此作用域内,全局变量可以为程序文件中的各个函数多引用。编译时,外部变量分配在静态存储区内。在extern声明外部变量的时候,类型名可以可不写, extern int A,B 等价于 extern A,B
二.利用extern在单个文件中扩展全局变量的作用域
如果外部(全局)变量不在文件的开头处定义,其有效作用范围只限于定义处到文件结束。那么如果我们想要在其定义处之前引用此变量,可以有两种方法。
1. 将此全局变量移至文件的开头处(所有要引用其的函数之前)。
2. 在其他函数调用其之前首先将其声明为extern变量,表明该变量是一个已知定义的外部变量,这样此变量的有效作用范围就可以从extern声明处开始到函数文件结束之后。
#include <iostream>
#include <stdio.h>
#include <vector>
using namespace std;
int max(int