为了支持分离式编译(separete compilation)【该机制允许将程序分割为若干个文件,每个文件可以被独立编译】,C++语言将声明和定义区分开。
声明:使名字为程序所知,规定了变量的类型和名字;
定义:负责创建与名字关联的实体,申请存储空间,也可能赋一个初值;
若想声明一个变量而非定义它,在变量名前添加关键之extern
extern int i; //声明i而非定义i
extern语句如果包含赋初值,就不再是声明而是定义了
【ps:变量能且只能被定义一次,但可以多次声明】
如果在多个文件中,使用同一个变量,就必须将声明和定义分离;变量的定义必须出现在且只能出现在一个文件中,而其他用到该变量的文件必须对其进行声明,绝对不能重复定义。