“定义”告诉编译器变量存储在什么地方。而声明却没有
声明:告诉编译器,变量类型和名字
定义:告诉编译器变量存储的位置。
举例子
int i;
// 这是声明+定义。声明:告诉编译器变量类型int,变量名字i,
// 定义:告诉编译器位置分配在全局变量区存储
extern int i;
// 这是声明,告诉编译器变量类型int,变量名字i,位置不知道,反正外部已经有人分配了。
注意:同一个变量和函数定义只能出现一次,定义一定伴随着声明
int main (){
int i;
}
// 这是声明,告诉编译器有一个变量i,类型是int.
// 这也是定义:告诉编译器,当main函数调用时,为int i在栈内存中开辟空间。