变量的声明和定义
一个函数一般由两个部分组成,声明部分和执行语句。声明部分的作用是对有关的标识符的属性进行声明如(变量,函数,结构体,共用体等)。对函数而言,函数的声明是函数的原形,而函数的定义是对函数功能的定义。对变量而言,声明部分有两种情况一是需要建立存储空间(int a)被称为定义性声明(既是声明也是定义),简称为“定义”,另一种是不需要建立存储空间的(extern a),被称为“引用性声明”。广义上,声明包括定义,但并非所有的声明都是定义。一般为了叙述方便,把建立存储空间的声明称为定义,而把不需要建立存储空间的声明称为声明。
int main(){extern A //是声明,不是定义。声明将已定义的外部变量A的作用域扩展至此...return 0;}int A;//是定义,定义A为整型外部变量
外部变量的名义只能有一次,它的位置在所有函数之外。
在同一个文件中,可以有多次对同一个外部变量的声明,它的位置可以在函数之内(哪个函数要用就在哪个函数中声明),也可以在函数之外。系统会根据外部变量的定义分配存储单元。对外部变量的初始化只能在“定义”时进行,而不能在“声明”中进行。所谓“声明”,其作用是声明该变量是一个已在其他地方已定义的外部变量,仅仅是为了扩展该变量的作用范围而作的“声明”
结论
在函数中出现的对变量的声明(除了用extern声明的以外)都是定义,在函数中对其他函数的声明不是函数的定义。