1.什么是定义,什么是声明
(1)在 C语言中,使用变量之前必须先定义变量。所谓定义变量,就是编译器创建了一个变量,为这个变量分配一块内存并命名(变量名)。例如,定义整型变量 a。
int a;
这条语句说明了 a是一个整型变量,编译器将为其分配一块大小为 int型数据所占的内存空间。a没有被赋初值,它的初值默认为 0。在定义的同时,也可以为其赋值进行初始化。如:
int a=1;
这条语句不仅说明了编译器为 a分配了内存,还说明了在整型变量 a分配的内存中存储的值。
注意:
不应该在头文件中定义变量,因为一个头文件可能会被一个程序的许多源文件所包含。
(2)所谓声明,就是告诉编译器变量的类型,编译器并不为其分配内存,此变量已经定义过,故声明可以多次进行。例如,声明外部变量 a。
extern int a;
这条语句说明了 a是一个外部整型变量,并且它的存储空间是在程序的其他区域分配的。extern置于变量前,以标示变量的定义在别的区域中,下面的代码用到的变量 a是外部的,不是本区域定义的,提示编译器遇到变量 a在其他区域中寻找其定义。 2.声明变量和定义变量的区别
(1)定义创建了变量,并为其分配内存;声明没有分配内存。
(2)一个变量在一定的区域内只能被定义一次,却可以被多次声明。