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

广州专业网站制作哪家专业营销传播服务

广州专业网站制作哪家专业,营销传播服务,小公司怎么做网站,wordpress 指定页面nofollow目录 概念: 与宏的对比: 函数膨胀: 内联函数的特性: 概念: 以inline修饰的函数叫做内联函数,编译时C编译器会在调用内联函数的地方展开,没有函数调 用建立栈帧的开销,内联函数…

目录

概念:

与宏的对比:

函数膨胀:

内联函数的特性: 

概念:

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

举例:inline int Add(int a, int b)
{return a + b;
}int main()
{int ret1 = Add(1, 2) * 3;int x = 1, y = 2;int ret2 = Add(x | y, x & y);return 0;
}

内联函数的本质其实和C语言中的宏函数相差不多,但是对比于宏,内联函数仅仅只是代替和替换,并不会像宏函数一样在替换的同时建立栈帧。

换句话说,内联函数只是替换和展开,而非调用和建立栈帧!

与宏的对比:

而关于宏函数,虽然宏能够解决这种“需要频繁调用”、“且建立栈帧”的问题,但是宏的缺陷也十分的明显:

  • 语法复杂,坑很多
  • 不容易控制不能调试
  • 没有类型安全的检查 
#define ADD(a,b)((a)+(b)) //正确写法#define ADD(a,b) a+b // 会有ret1 的情况发生  #define ADD(a,b)(a+b) // 会有ret2的情况发生//这个宏的本质其实是 将ADD(参数1 ,参数2 ) 替换成 参数1+参数2 
//但是直接替换所以要考虑的问题很多 int main()
{int ret1 = Add(1, 2) * 3;int x = 1, y = 2;int ret2 = Add(x | y, x & y);return 0;
}

因为宏的本质上是替换,所以对于需要替换的内容十分的严谨,倘若一步错,则步步错,所以对于宏而言,内联函数其实是更加完善的,可以说内联函数其实是完善了宏的问题,解决了宏的缺点。 

函数膨胀:

实际上,内联函数使用的场景并不是很多,很多时候内联函数只是也只能使用在较为小型的函数当中,如果是较为大型或者调用函数的次数非常多时,内联函数就会导致函数膨胀问题的发生!

举例:如果inline定义了一个大概有着一百行的代码作为内联函数,而调用这个内联函数的代码有一万行,那么根据内联函数的替换原理,大概就会有一百万行的代码的运行量在这串代码当中。

所以,这也是为什么说内联函数实际上是空间换取时间的原因!

内联函数的特性:

1. inline是一种以空间换时间的做法,如果编译器将函数当成内联函数处理,在编译阶段,会 用函数体替换函数调用,缺陷:可能会使目标文件变大,优势:少了调用开销,提高程序运 行效率。

2. inline对于编译器而言只是一个建议,不同编译器关于inline实现机制可能不同,一般建 议:将函数规模较小(即函数不是很长,具体没有准确的说法,取决于编译器内部实现)、不 是递归、且频繁调用的函数采用inline修饰,否则编译器会忽略inline特性。 

3. inline不建议声明和定义分离,分离会导致链接错误。因为inline被展开,就没有函数地址 了,链接就会找不到。

// F.h
#include <iostream>using namespace std;inline void f(int i);// F.cpp
#include "F.h"void f(int i)
{cout << i << endl;
}// main.cpp
#include "F.h"int main()
{f(10);return 0;
}

http://www.ds6.com.cn/news/69238.html

相关文章:

  • 网站建设推广怎么做福州百度推广优化排名
  • 网站建设空间是指什么软件建立网站需要什么条件
  • 重庆网站制作的网站软文推广代写代发
  • 微网站样式seo美式
  • 普陀区建设工程质检网站各大搜索引擎入口
  • 网站(建设)安全自查报告汽车网站建设
  • discuz论坛 整合到网站关键词热度
  • 公司网站服务商北京官网seo
  • 企业信用信息公示系统查询武汉seo顾问
  • 低价网站制作顺德seo网络培训机构
  • 将网站的字体设计成百分比的形式要怎样定义杭州网站推广与优化
  • 权威的手机网站建设百度站长平台链接提交
  • 免费自助建站自助建站平台企业营销推广怎么做
  • 蛋糕行业网站建设方案seo优化网站
  • wordpress 手机注册插件广州网站设计专注乐云seo
  • 长春做公司网站的seo发帖工具
  • 聊城集团网站建设seo快速排名多少钱
  • 网站开发进阶商品seo优化是什么意思
  • 上海网络推广外包公司成都网站排名生客seo怎么样
  • 中国化工建设协会网站小说关键词搜索器
  • 商城版免费网站制作无忧软文网
  • 建设门户网站的重要性百度客服联系方式
  • 网站网络优化宁德市教育局
  • 免费团购网站模板长春网站建设平台
  • 开一间网站建设有限公司百度指数网址
  • 成都网站建设公司是什么杭州专业seo服务公司
  • 做论坛网站看什么书网站推广公司排名
  • 网站备案基础知识优化方案怎么写
  • 一个网站开发需要几人新冠疫情最新数据
  • 江西中创建设有限公司网站深圳谷歌seo推广