欢迎来到代码驿站!

C代码

当前位置:首页 > 软件编程 > C代码

C++ 内联函数详解

时间:2022-12-25 15:23:42|栏目:C代码|点击:

一、C++ 内联函数

1.内联

C 语言中有宏函数的概念。宏函数的特点是内嵌到调用代码中去,避免了函数调用的开销。但是由于宏函数的处理发生在预处理阶段,缺失了语法检测和有可能带来的语意差错。

2.语法

C++提供了 inline 关键字,实现了真正的内嵌。

宏函数 VS inline函数

#include <iostream>
#include <string.h>
using namespace std;
//优点:内嵌代码,辟免压栈与出栈的开销
//缺点: 代码替换,易使生成代码体积变大,易产生逻辑错误,无类型检查
#define SQR(x) ((x)*(x))
//优点:高度抽象,避免重复开发,类型检查
//缺点: 压栈与出栈,带来开销
inline int sqr(int x)
{
	return (x)*(x);
}
int main()
{
	int i=0;
	while(i<5)
	{
		printf("%d\n",SQR(i++));
		printf("%d\n",i);
		printf("%d\n",sqr(i++));
		printf("%d\n",i);
	}	
	return 0;
}

输出结果

3.评价

引入内联函数的目的是为了解决程序中函数调用的效率问题,这么说吧,程序在编译器编译的时候,编译器将程序中出现的内联函数的调用表达式用内联函数的函数体进行替换,而对于其他的函数,都是在运行时候才被替代。这其实就是个空间代价换时间的i节省。所以内联函数一般都是1-5行的小函数。在使用内联函数时要留神:

1.在内联函数内不允许使用循环语句和开关语句;

2.内联函数的定义必须出现在内联函数第一次调用之前;

3.类结构中所在的类说明内部定义的函数是内联函数;

总结

上一篇:C++超详细分析顺序表

栏    目:C代码

下一篇:没有了

本文标题:C++ 内联函数详解

本文地址:http://www.codeinn.net/misctech/222192.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有