函数也具有存储类。函数可以是外部的(默认情况下),也可以是静态的。外部函数可被其他文件中的函数调用,而静态函数只可以在定义它的文件中使用。看下面的函数声明:
double gamma(); /*默认为外部的*/
static double beta();
extern double delta();
函数gamma()和delta()可被程序中其他文件中的函数使用,而beta()则不可以。以为beta()被限定在一个文件内,故可在其他文件中使用具有相同名称的不同函数。使用static存储类的原因之一就是创建为一个特定模块所私有的函数,从而避免可能的名字冲突。
通常使用关键字extern来声明在其他文件中定义的函数。这一习惯做法主要是为了是程序更清晰,因为除非函数声明使用了关键字static,否则认为它是extern的。