C++中关于内部与外部函数

本文介绍了C++中的内部函数(静态函数)和外部函数的概念。内部函数使用`static`关键字,限制其作用范围在当前文件,允许同名函数在不同文件中互不干扰。外部函数通常省略`extern`关键字,默认可被其他文件调用。通过`extern`声明,可以在一个文件中调用其他文件中定义的外部函数,例如在file1.cpp和file2.cpp中实现的`max`函数调用。`#include`指令常用于引入头文件,扩展函数作用域,如`<cmath>`包含数学函数原型,便于调用库函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1》如果一个函数只能被本文件中其他函数所调用 ,它称为内部函数,又称为静态(static)函数。

内部函数首部的一般形式为:

static 类型标识符  函数史(形参表)

static     int             func      (int a, int b)


可以使内部函数只局限于所在的文件内。

如果在不同的文件中有同名的内部函数,互不干扰。这样不同的人可以分别编写不同的函数,而不用担心所用的函数是否会与其他文件中的函数重名。


2》如果在函数首部的最左端以关键字 extern(可以省略) ,则表示此函数是外部函数,可供其他文件调用 。

外部函数首部的一般形式为:

extern  类型标识符  函数史(形参表)

extern     int               func    (int a ,int b )

注意:如果在定义函数时省略extern,则默认为外部函数

3-1》file1.cpp

#include<iostream>

using namespace std;

int main ()

{

       extern int max(int a,int b);//声明在本函数将要调用在其他文件中定义的max函数

     int a,b;

     a=10;

     b=20;

     cout<<max(a,b)<<endl;

     return 0;

}

3-2》file2.cpp

extern int max(int a,int b)

{

      return a>b?a:b;

}

   

使用此例可知:使用extern 声明就可以在一个文件中调用其他文件中的定义的外部函数了。


利用函数原型扩展函数作用域最常见的例子是#include指令。

例如,在程序中需要调用sin函数,但是三角函数并不是由用户在本文件中定义的,而是存放在数学函数库中的。按以上的介绍,必须在本文件中写出sin函数的原型,否则无法调用sin函数。

sin函数的原型是:

double sin(double x);

本来应该由程序设计者在调用库函数时先从手册中查出所用的库函数的原型,并在程序中一一写出来,但是这样显然是麻烦而困难的。为了减少程序设计都的困难,在头文件cmath中包括了所有的数学函数的原型和其他有关信息,用户只须用以下#include指令:

#include<cmath>

即可。这时,在该文件中就能合法地调用 各数学库函数了。

详见:C++程序设计(第二版) P123-P125



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值