对于变量:
官方的解释:
声明一个变量只是将变量名标识符的有关信息告诉编译器,使编译器“认识”该标识符,但声明不一定引起内存的分配。而定义变量意味着给变量分配内存空间,用于存放对应类型的数据,变量名就是对相应的内存单元的命名。
在C++程序中,大多数情况下变量声明也就是变量定义,声明变量的同时也就完成了变量的定义,只有声明外部变量时例外。
同一个文件下:
对于变量而言,在同一个文件里面,很少使用声明这个说法,一般没有人去说我要声明一个变量,然后定义这个变量。或者说,声明与定义没有明显的区别。就好比 int a;
我们可以说这是一个声明,也可以说这是一个定义,因为当程序执行到这句话的时候就完成了内存分配。数据类型,变量名,对应的内存单元就已经明确了。
而int a =1;
就完成了初始化,因为它明确了内存单元里到底存放什么样的数据。
多个文件下:
在同一个工程,在多个文件中变量的声明和定义才有区别(比如说在first.c文件中先定义了一个int a;我在second.c中要访问这个a,这时我们需要在second.c这个文件中声明一下);
对于函数:
而对于函数而言,声明和定义就有明显的区别了,首先定义一个函数要明确函数的类型,参数,名称和功能,比如:
int fun(int a,int b)
{ int c;
c=a+b;
return c;
}
而这个函数如果在main函数的后面定义,但是在main函数里面要调用它;或者在一个文件中定义,在另一个函数中要引用它,此时就需要对其声明:
int fun(int a,int b);