linux函数的性质,C++函数的一些特性

一、内联函数

调用函数时需要一定的时间和空间的开销。函数调用过程:

d45c004a96967ae20ce54623c1c140a7.png

C++提供一种提高效率的方法,即在编译时将所调用函数的代码直接嵌入到主调函数中 ,而不是将流程转出去。这种嵌入到主调中的函数称为内联函数。

#include

using namespace std;

inline int sum(int a,int b);

int main()

{

int a=100;

int b=200;

cout<

return 0;

}

inline int sum(int a,int b)

{

return a+b;

}

在调用sum(a,b)时,就用sum函数体的代码代替sum(a,b)

注意可以在声明函数和定义函数时同时写inline,也可以在其中一处声明inline,效果一样。

适用于:规模较小而又被频繁调用的简单函数。

二、函数的重载

在编程时,有时我们要实现的是同一类的功能,只是有些细节不同。比如sum()函数:

int sum1(int a,int b);

int sum2(int a,int b,int c);

double sum3(double a,double b);

float sum4(float a,float b);

C++允许用同一函数名定义多个函数,这些函数的参数类型和参数个数可以不同。

int sum(int a,int b);

int sum(int a,int b,int c);

double sum(double a,double b);

float sum(float a,float b);

三、函数模板

所谓的函数模板,实际上是建立一个通用函数,其函数类型和形参类型不具体指定,用一个虚拟的类型来代替。凡是函数体相同的函数都可以用这个模板来代替,不必定义多个函数,只需在模板中定义一次即可。在调用函数时系统会根据实参的类型来取代模板中的虚拟类型。

template

T sum(T a,T b,T c)

{

return a+b+c;

}

定义函数模板的一般形式:

template 或 template

类型参数可以不止一个:

template

四、有默认参数的函数

一般情况下,在函数调用时形参从实参那里取得值。有时多次调用同一函数时用同样的实参,C++提供简单的处理办法,给形参一个默认值,这样形参就不必一定要从实参取值了。

flaot area(float r=6.5);

area();  //相当于area(6.5);

五、函数的嵌套调用

C++不允许对函数进行嵌套定义,即一个函数中不能完整地包含另一个函数。在一个程序中每一个函数的定义都是互相平行和独立的。虽然C++不能嵌套定义函数,但是可以嵌套调用函数。

605e175425adc4ea125ef601b0419053.png

六、函数的递归调用

在调用一个函数的过程中又出现间接或直接地调用该函数本身,称为函数的递归调用。

1cc894b79930b2327ab0effe942ee918.png

七、内部函数和外部函数

内部函数:只能被本文件其他函数调用

外部函数:缺省默认为外部函数,可供其他文件调用

static int fun(int a,int b);

extern int fun(int a,int b);

0b1331709591d260c1c78e86d0c51c18.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值