来自C++ Primer第5版 王刚 杨巨峰 译
C++语言可以将声明和定义分开。
声明规定了变量的名字和类型;
定义除了规定变量的名字和类型,还申请了空间,也可以为变量赋初值。
extern int i; //声明了i
int j; //声明并定义了j
任何包含了显式初始化的声明即成为定义,如
extern double pi = 3.14; //定义
注意,在函数内部试图初始化(不是赋值)由extern标记的变量将引发错误。
变量能且只能被定义一次,但是可以被多次声明。
如果要在多个文件中使用同一个变量,要将变量声明和定义分开。变量的声明在一个(头)文件里面,其他用到该变量的文件对其进行声明(并包含这个头文件),但是不能重复定义。