什么是声明?什么是定义?

来源:互联网 发布:淘宝店卖保健品 编辑:程序博客网 时间:2024/05/05 00:04

这是一个基础且重要的知识。什么是声明,什么是定义。


让我们先来看看下面的两个例子

int    a;extern int    a;


这两个里面,哪个是声明? 哪个是定义?


要解决这个问题,当然我们需要先知道什么是声明,什么是定义。


声明:

1)       告诉编译器,这个变量名或对象已经匹配到一块内存空间上了。下面的代码用到变量或对象是在别的地方定义。声明可以出现多次。

2)       告诉编译器,这个名字已经被预定了,别的地方再也不能它来作为变量名或对象名。这种声明最典型的例子就是函数参数的声明。


定义:

就是编译器为一个变量或对象分配一块内存空间,并给它取上名字。这个名字就是变量名或对象名。并且,在这个变量的作用域中只能被定义一次,当被定义多次的时候,编译器会报错。说你重覆定义同一个变量或对象。


或许还有个疑问。例子2 语句中的 extern 是什么作用?这里就这个问题简单说说 extern 它的其中一个作用。

extern 可以修饰变量,即系放在变量前。其作用是声明 我(extern)修饰的变量其定义在别的文件中。不在当前文件。


OK,现在我们知道了其各自的含义了。那么对于上面两个例子,我想答案早已浮现了。

int    a;               //此语句为定义extern int    a;        //此语句为声明


对于声明和定义,其实它们有个很明显的区别:

定义,创建了对象并分配内存空间。声明,没有分配空间




原创粉丝点击