c++学习笔记(八)

内联函数

概念

内联(inline)函数是c++为提高程序运行速度所做得一项改进。

与常规函数的区别不在于编写方式,而在于被调用时的运行机制不同————编译器使用函数代码替换函数调用。

引用内联函数时,就像将内联函数内的代码直接copy到引用位置。

使用建议:如果执行函数代码的时间比处理函数调用机制时间长,则节省的时间将只占整个过程的很小一部分。

如果代码执行时间很短,内联调用就可以节省大部分时间。

但占用的内存也会多一些。

使用内联特性

1.在函数声明前加关键词inline。

2.在函数定义前加关键词inline。

二者选其一即可。

宏定义

宏定义的原理也是替换,和内联相似,但有的用法需要注意。

#include<iostream>
using namespace std;
#define N 3
#define sq(num) num*num
int main()
{
	cout<< N <<endl;
	cout<< sq(5)<<endl;
	cout<< sq(2+3)<<endl;
	return 0;
}

这是我打得一段代码,按照我之前的思维,5和2+3应该完全相等。

但在今天的学习后,我涨了新知识。

为什么当num为5时num*num的结果为5,而当num为2+3时,num*num结果为11呢。

因为宏定义#define的实质是替换,num为2+3,那就讲num*num中的num直接变为2+3,即2+3*2+3,得到的结果自然是11.

posted @ 2020-02-06 15:57  hqk111  阅读(91)  评论(0编辑  收藏  举报