2.2.2 变量声明和定义的关系
为了支持分离式编译,C++将变量的声明和定义区分开。
声明: 类型 + 名称 [注意到默认初始化的情况,可能会混淆,所以统一加上extern]
定义: 类型 + 名称 + 存储空间(可能赋初值)
可以多次声明,但只能一次定义。
使用前一定要声明,因为C++是一种静态类型语言,编译时要进行类型检查。
1 extern int i; //声明而非定义 2 int j; // 声明并定义(pay attention!) 3 extern int pi = 3.14 //定义
在函数体内,第三种情况会报错。