在C++中,根据函数能否被其他源文件调用,将函数区分为内部函数和外部函数。
一、内部函数
函数本质上是全局的,在多文件的程序中,在连接时会检查函数在全局作用域内是否名字唯一,如果不是则出现连接错误。内部函数又称静态函数。在C++中使用内部函数,可以使函数只局限于所在文件。如果在不同的文件中有同名的内部函数,互不干扰。
►在函数定义前加上static修饰,则函数称为内部函数,定义形式为:
{
函数体
}
static 返回类型 函数名(形式参数列表)
//如
static int Max(int num1,int num2)
►按照实体可见规则,内部函数仅在包含它的文件中有效。
►之所以使用内部函数的原因是该函数逻辑上仅限定在一个文件中使用,其他文件不会用到。而且希望连接检查时永远不可能出现该函数名不唯一的连接错误,这在多人编写同一个程序的软件开发模式中是常用的策略。
二、外部函数
在函数定义前加上extern声明,则函数称为外部函数,可被其他文件调用,定义形式为:
extern 返回类型 函数名(形式参数列表)
{
函数体
}
C++中所有的函数本质上都是外部函数。因此,上面的extern都可以省略。
//extern 返回类型 函数名(形式参数列表)
//如函数开头写
extern int Max(int num1,int num2)