Bootstrap

C语言 | 内部与外部函数

C语言函数的声明和定义

一个函数一般由两部分组成:

  • 声明部分执
  • 行语句

C语言对变量而言,声明与定义的关系稍微复杂一些,在声明部分出现的变量有两种情况:

  • 一种是需要建立存储空间的。
  • 另一种是不需要建立存储空间的。

前者称为定义性声明,简称定义;后者称为引用性声明。

一般为了叙述方便,把建立存储空间的声明称定义,而把不需要建立存储空间的声明称为声明。

在函数中出现的对变量的声明,除了用extern声明的以外都是定义,在函数中对其他函数的声明不是函数的定义。

C语言内部函数

一个函数只能被本文件中其他函数所调用,它称为内部函数。在定义内部函数时,在函数名和函数类型的前面加static即:

static 类型名 函数名(形参表);

内部函数又称为静态函数,因为它是用static声明的。

使用内部函数,可以使函数的作用域只局限于所在文件,在不同的文件中即使有同名的内部函数,也互不干扰。

通常把只能由本文件使用的函数和外部变量放在文件的开头,前面都加static使之局部化,表示其他文件不能引用。

C语言外部函数

在定义函数时,在函数首部的最左端加关键字extern,则此函数是外部函数,可供其他文件调用。

C语言规定,如果在定