1、声明和定义都规定了变量的名字和类型,但是定义会申请内存空间,也可能为变量赋一个初始值。 2、同一个变量声明可以有多处,但定义只能有一处
extern int i; //声明i而非定义i int j;//声明并定义j
extern关键字就是告诉编译器,这个变量i定义在其他文件中 3、任何显式初始化的声明也会成为定义 extern int i = 3;//定义,非声明
4、函数声明与定义区别在于后者多个函数体。