有点多,但如果想弄明白这个问题,就请静下心来慢慢看。
C语言中的定义与声明十分容易混淆,就连有些介绍C语言的书都对其解释的很迷糊。我在观看谭浩强《C程序设计》时才彻底搞清楚,现在我想向网友们分享一下我的理解。
那么何为声明,何为定义呢?别着急,请耐下心,我先说一说变量和函数。因为咱们熟悉的声明和定义绝大多数都是针对于函数和变量的。
对函数而言,声明与变量的区别是明显的。函数的声明是函数的原型(原型就是自定义函数的首句,如:int fun(int a) ),而函数的定义是对函数功能的定义。对被调用函数的声明是放在主调函数的声明部分中的,而函数的定义显然不在声明部分的范围内,它是一个独立的模块。
对变量而言,声明与定义的关系稍微复杂一些。在声明部分出现的变量有两种情况:①需要建立存储空间(如: int a; )②不需要建立存储空间(如:extern int a;)。前者称为定义性声明,或简称定义;后者称为引用性声明。广义地说,声明包括定义,但并非所有的声明都是定义。
一般为了叙述方便,把建立存储空间的声明称为定义,而把不需要建立存储空间的声明成为声明。
over。
如果你不知道有些词是什么意思,请先去了解它再来看本篇。