c++变量声明和定义的关系
动机:
为了把程序拆分成多个逻辑部分,c++支持分离式编译,该机制可以将程序分割成若干个文件,每个文件可被独立编译。
为了支持分离式编译,c++将声明(declaration)和定义(definition)区分开。
声明:声明使得为程序所知,一个文件如果想使用别处定义的名字则必须包含对那个名字的声明。
定义:定义负责创建与名字相关联的实体。
联系与区别:变量声明与定义都规定了变量的类型与名字,定义还赋予了变量存储空间。
例:
想声明一个变量而非定义,就在变量名前添加关键字extern,也不要显示的赋予初值。
extern int i; //声明i
int i; //声明并定义i
任何显示的声明即成定义
extern double i = 3; // 定义i