声明与定义的区别

来源:互联网 发布:淘宝店铺素材免费下载 编辑:程序博客网 时间:2024/05/21 08:39

声明是向计算机介绍名字,告诉计算机这个名字是什么意思,而定义是为这个名字分配存储空间。

无论涉及到的是变量还是函数,它们的含义都是一样的。

无论在哪种情况下,编译器都在定义处分配存储空间。

对于变量,编译器确定这个变量占多少存储空间,并在内存中产生存放它们的空间。

对于函数,编译器产生代码,并为之分配存储空间。函数的存储空间中有一个由使用

不带参数表或带地址操作符的函数名产生的指针。

定义也可以是声明,如果编译器还没有看到过名字A,程序员定义intA,则这既是定义

也是声明,编译器马上为这个名字分配存储空间。

声明常常使用extern关键字,如果我们只是声明变量而不是定义它,则必须要求使用extern。

对于函数的声明,extern关键字是可选的,不带函数体的函数名连同参数表和返回值,自动地作为一个声明。

在函数声明和定义时,参数名可给出也可不给出。


/*: declare.cpp */extern int i;//变量声明extern float f(float);//函数声明float b;//变量声明并定义float f(float a) {//函数定义return a + 1.0;}int i;//变量定义int h(int x) {//函数声明并定义return x + 1;}int main() {b = 1.0;i = 2;f(b);h(i);return 0;}