在C++中,要调用一个函数必须先申明这个函数,即在main()函数之前申明这个函数,但函数的定义则可以放到main()函数之后。
对于一个给定的函数可以进行多次调用
当函数的调用时,函数的实参与形参传递方式有两种:
第一种就是直接将实参(argument)传递给形参(variable),这种方式传递给函数体的值在函数体内部发生改变时不会影像到实参本身
第二中是通过reference的方法将实参(argument)传递给形参(variable),reference方法仅在形参前加了一个ampersand符号,这种方式会把实参和形参关联在一起,在函数体内发生的参数变化会影像到实参的变化,例如:
// passing parameters by reference
#include <iostream>
using namespace std;
void duplicate (int &a, int &b, int &c)
{ a*=2; b*=2; c*=2; }
int main ()
{ int x=1, y=3, z=7;
duplicate (x, y, z);
cout << "x=" << x << ", y=" << y << ", z=" << z;
return 0; }
该函数将实参 x=1, y=3, z=7通过reference方式分别传递给形参a, b, c ,当a, b, c 在函数体内加倍时,实参也相应的发生变化,因此最后输出结果会变成
x=2, y=6, z=14
引入reference方法的原因
调用函数直接赋值等同于形参复制了实参的值,这种方法对于一长串字符来说显得过于低效,因此可以通过reference方法来赋值,reference方法不是单纯的复制,因此可以大大的提高函数调用的效率,而这种方法仍然存在一个问题,即在调用函数时并不希望参数发生变化,而这可以通过const 关键字来保证,即在函数定义时,在函数的参数前加一个const关键字,例如
string concatenate (const string& a, const string& b)
{
return a+b;
}
这样定义的参数就不允许发生变化,同时采用reference方法来赋值以提高函数调用的效率。
inline 提高短小函数的调用效率
当一个函数体较小时,采用常规的函数调用方法会浪费资源,可以通过inline来提高函数的使用效率,即在函数体的定义前加inline,这样表示该函数在主函数中调用时不是遵循普通函数的call调用方法,而是直接将函数插入到主函数需要引用的地方,这样提高了函数的使用效率。
原文链接: https://www.cnblogs.com/Star-Lee/p/7794926.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/262724
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!