C++基础语法:函数探幽(一)内联函数,默认参数,函数重载

前言
     

       "打牢基础,万事不愁" .C++的基础语法的学习."学以致用,边学边用",编程是实践性很强的技术,在运用中理解,总结.      

引入

       <C++ Prime Plus> 6th Edition(以下称"本书")第8章内容解读

内联函数

         1>本书P253--8.1节C++内联函数第二段:常规函数调用也使程序跳到另一个地址(函数的地址),并在函数结束时返回.下一段:对于内联代码,程序无需跳到另一个位置处执行代码,再跳回来。因此,内联函数的运行速度比常规函数稍快,但代价是需要占用更多内存。(黑体字是原话)

        ----非内联函数和内联函数在程序被编译后产生的机器指令不一样.

        调用非内联函数时,留下一个函数地址,CPU处理到函数地址时会跳到函数定义的位置执行代码,然后跳转回来(return)继续执行以下代码.编译后的内联函数,把代码一并放到当前位置,节省了CPU跳转执行和跳转返回的时间.见本书P254图8.1.所以,内联函数占内存多,但运行快.

        2>内联函数和寄存器变量register一样,是一种请求.即使定义成内联函数,编译器未必满足,见本书P254说明.

        3>内联函数不能递归

        4>内联函数优于宏定义

        C语言中的宏定义,不主动识别(),所以容易写错.内联函数没有这个顾虑.

        内联函数的使用场景

                代码内容少,调用次数不多,不用递归时可考虑使用内联函数

引用

        本书P255最后一段: 但引用变量的主要用途是用作函数的形参。通过将引用变量用作参数,函数将使用原始数据,而不是其副本.(黑体字是原话)

        引用已写过几篇文章,核心就在黑体字中,使用原值.

        引用主要用于表示单个变量的指针(不支持数组),多用于类对象引用做形参.如果想修改原值,用对象引用作形参,如果仅访问,对象引用前加const修饰.----代码的"潜在规则"

        本书P274中间8.2.7"何时使用引用参数"有详细使用说明 

        关于右值引用:本书截图如下

        测试代码如下

/*已测试*/
/*变量赋值左值引用,常量赋值右值引用*/
#include<iostream>
using namespace std;

int main(void) {
	int a = 3;	
	int&& b = 3;					//常量赋值给右值引用
	int& ref_c = a;					//变量赋值给左值引用
	int d = b;						//右值引用赋值给变量
	int e = ref_c;					//左值引用赋值给变量,相当于指针

	cout << "a的值是:" << a << endl;
	cout << "b的值是:" << b << endl;
	cout << "c的值是:" << ref_c << endl;
}

         区别左值引用和右值引用:左值引用不能接收常量,如int &f=3;//错误.右值引用可以接收常量.

         在什么情况下使用右值引用,暂时放一放.

默认参数

        概念:在定义函数时,设置一

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

重庆彭枫

你的鼓励是我创作的动力,谢谢

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值