当前位置: 首页 > news >正文

接入商 济南网站建设北京今日重大新闻

接入商 济南网站建设,北京今日重大新闻,深圳恒诚信企业管理有限公司,汽车网站开发流程文章目录概念使用特性原理概念 C中内联函数的出现解决了C语言宏函数的不足,类似于宏展开,这种在函数调用处直接嵌入函数体的函数称为内联函数,又称内嵌函数或内置函数。 以inline修饰的函数叫做内联函数,编译时C编译器会在调用内…

文章目录

  • 概念
  • 使用
  • 特性
  • 原理


概念

C++中内联函数的出现解决了C语言宏函数的不足,类似于宏展开,这种在函数调用处直接嵌入函数体的函数称为内联函数,又称内嵌函数或内置函数。

以inline修饰的函数叫做内联函数,编译时C++编译器会在调用内联函数的地方展开,没有函数调用建立栈帧的开销,内联函数可以提升程序运行的效率

使用

在函数的返回值前加上inline关键字即可。

#include<iostream>
using namespace std;
inline int Add(int x, int y)
{return x + y;
}
int main()
{int ret = Add(10,20);cout<<ret<<endl;return 0;
}

如果在上述函数前增加inline关键字将其改成内联函数,在编译期间编译器会用函数体替换函数的调用。

特性

1)短小的,频繁调用的函数才适合声明为内联函数。要知道inline对于编译器而言只是一个建议,不是强制性的,编译器有自己的判断能力。

2)为什么函数体长了之后,内联函数不展开?

如果函数体代码比较长,如递归等,使用内联函数会导致代码膨胀。会导致编译后的程序存在多份相同的拷贝,编译出来的可执行程序也会非常大,会消耗更多的内存空间,如果指向函数体代码的时间比函数调用的开销大的多,那么inline效率收益会很小

3)所以inline是一种空间换时间的做法(空间:由于函数体代码展开,编译出来的可执行程序大小/静态库,动态库/会变大)

4)综上,内联函数的缺点:可能会使目标文件变大;优点:少了调用开销,提高程序运行效率

5)inline内联函数不建议声明和定义分离
在这里插入图片描述
在这里插入图片描述
错误定义:声明和定义分离如下:
在这里插入图片描述

解决方法:直接在头文件中定义内联函数

在这里插入图片描述

原理

我们通过查看程序代码的反汇编语言,来了解一下inline函数的执行原理:

查看方式:

  1. 在release模式下,查看编译器生成的汇编代码中是否存在call Add
  2. 在debug模式下,需要对编译器进行设置,否则不会展开(因为debug模式下,编译器默认不会对代码进行优化,以下给出vs2013的设置方式)

先右击项目,点击项目属性。
在这里插入图片描述
我们先来看一段普通函数f的调用过程(通过查看debug下的汇编代码):
在这里插入图片描述
内联函数的原理即底层调用方式:
在这里插入图片描述

http://www.mnyf.cn/news/50269.html

相关文章:

  • 罗湖网站建设公司乐云seo百度下载免费
  • 如何自己制作首页网站南京网络建站公司
  • 2022最新热点时评十篇杭州seo论坛
  • 网络科技公司如何诈骗商丘网站seo
  • 网站设计背景图片怎么做的高端网站设计定制
  • 奉化网站建设seo公司推荐推广平台
  • 网站flash客服中国十大知名网站
  • 商城和营销型网站建设好的网络推广平台
  • 沈阳做招聘网站百度如何免费推广
  • 做货代在哪些网站能找到客户百度seo站长工具
  • 做网站建设话术代哥seo
  • 安康网站建设公司搜索引擎营销原理
  • 手机网络营销策划方案google关键词优化
  • 网站建设资讯凡科建站登录
  • wordpress画界面seo网站优化方法
  • 深圳网站运营外包公司国家卫健委最新疫情报告
  • 网站开发总监招聘抚州seo排名
  • 用asp做的一个网站实例源代码商城全网推广运营公司
  • 漳诈网站建设网络推广方案设计
  • 网站与平台的区别小广告多的网站
  • 网站设计内容板块淄博seo
  • 类似淘宝网站建设有哪些模板外链信息
  • 交友网站开发碎机通2345网止导航
  • 网站导航条内容可以直接打开网站的网页
  • 机械做卖产品网站以营销推广为主题的方案
  • 廊坊网站建设招聘seo课程培训
  • 门户网站建设的步骤佛山旺道seo
  • 比较容易做的网站品牌运营岗位职责
  • 网站建设倒计时代码开封网站推广
  • 网站改版 降权9 1短视频安装