1.声明和定义的区别
变量声明规定了变量的类型和名字,而定义是在声明的基础上还开辟了存储空间,可能还会为变量初始化一个初始值。
2.c++为什么要将声明和定义分开?
c++支持分离式编译机制,允许将程序分割为若干个文件,每个文件可被独立编译,而为了支持这种分离式编译,c++将声明和定义区分开,声明使得名字为程序所知,一个文件如果想使用别处定义的名字则必须包含对那个名字的声明,而定义负责创建与名字关联的实体。
3.怎么只声明变量而非定义变量?
在变量前添加关键字 extern,并且不要显示地初始化变量:
extern int i; //声明i,没有定义i
int j; //声明并定义j
变量可以声明多次,但能且只能定义一次。
extern关键字用法参考:https://www.jianshu.com/p/41f88d811991