C++ primer plus_笔记_8_函数探幽

本文介绍了C++中的内联函数,包括其工作原理、如何实现内联以及内存影响。同时,讲解了引用变量的概念,包括创建和在函数参数传递中的应用。
摘要由CSDN通过智能技术生成

1.C++内联函数

        C++中函数分为常规函数和内联函数。

     常规函数

        常规函数调用时,操作系统会先执行调用函数之前的指令(按一定顺序放在一块内存中),然后再跳转到储存函数中指令的地址处执行函数指令,并在执行完成后跳回至原指令处。

        也就是说常规函数调用时需要来回跳跃并记录跳跃位置,需要一定的算力开销。

     内联函数

        内联函数调用时,会先将函数指令拷贝添加至调用函数的相应位置,再与调用函数之前的指令按顺序统一执行。

        也就是说内联函数调用时会拷贝自己的副本,执行速度稍快,但会占用更多内存。

        要使用内联函数特性,必须采取以下措施之一:

  • 在函数声明前加上关键字 inline
  • 在函数定义前加上关键字 inline

        通常的做法是省略原型,将整个定义(即函数头和所有函数代码)放在本应提供函数原型的地方。

         程序员请求将函数作为内联函数时,编译器并不一定会满足这种要求。它可能认为该函数过大或注意到函数调用了自己(内联函数不能递归),因此不将其作为内联函数。

#include <bits/stdc++.h>
using namespace std;

//内联函数定义,不一定非要放在一行中,但内联函数仅适合短小的函数。
inline double square(double x) { return x * x; }    //将给定数据平方

int main()
{
	double x = 2;
	cout << square(x) << "\t" << square(square(x)) << "\t" << square(square(square(x))) << endl;
	return 0;
}

引用变量

        引用变量是C++新增的一种复合类型。引用时已定义变量的别名。

创建引用变量

int rats;
int &rodents = rats;    //使rodents成为rats变量的一个别名

        其中,& 不是地址运算符,而是类型标识符的一部分(引用变量类型)。上述引用声明使得 rats 与 rodents 指向相同的值和内存单元。

        注意:必须在声明引用变量时进行初始化进而使引用更接近于 const 指针。

将引用用作函数参数

        这种传参方式称为按引用传递。按引用传递允许被调用的函数访问调用函数中的变量。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值