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

网站建设一键搭建网店运营与推广

网站建设一键搭建,网店运营与推广,网站备案网站名称怎么填,个体搞网站建设 经营范围文章目录📕 概念📕 使用前的准备📕 使用📕 特性📕 概念 在 C 中,为了解决一些频繁调用的小函数大量消耗栈空间(栈内存)的问题,特别的引入了 inline 修饰符,表…

文章目录

  • 📕 概念
  • 📕 使用前的准备
  • 📕 使用
  • 📕 特性

📕 概念

在 C++ 中,为了解决一些频繁调用的小函数大量消耗栈空间(栈内存)的问题,特别的引入了 inline 修饰符,表示为内联函数。栈空间就是指放置程序的局部数据(也就是函数内数据)的内存空间。

但是,当我们使用 inline 修饰一个函数的时候,在调用该函数的地方,编译器就有可能会直接将函数在那里展开,而不是 call 这个函数。
为什么这里说 “有可能” 呢?这是因为,inline 只是相当于给编译器一个 “建议” ,最终是直接展开,还是使用函数调用,是由编译器自己来决定的。

📕 使用前的准备

在 debug 模式下,需要对编译器进行设置,否则不会展开(因为debug模式下,编译器默认不
会对代码进行优化,下面是对 VS2019 进行设置的方法)。

首先,点击最上方菜单栏的 “项目” ,然后在跳出的菜单栏中点击最下方的 “属性”。
其次,进行下面两张图片的设置。修改红色方框的内容,改成图中所示。

请添加图片描述
请添加图片描述

📕 使用

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

如上是测试代码,按下 F10,进入调试状态,然后转到反汇编,查看汇编代码。下图中可以明显看出来,内联函数 Min 是直接展开的,而 Add 是调用函数。

在这里插入图片描述

📕 特性

  • inline是一种以空间换时间的做法,如果编译器将函数当成内联函数处理,在编译阶段,会
    用函数体替换函数调用,缺陷:可能会使目标文件变大,优势:少了调用开销,提高程序运
    行效率
  • inline对于编译器而言只是一个建议,不同编译器关于inline实现机制可能不同,一般建
    议:将函数规模较小(即函数不是很长,具体没有准确的说法,取决于编译器内部实现)、不是递归、且频繁调用的函数采用inline修饰,否则编译器会忽略inline特性。
  • inline不建议声明和定义分离,分离会导致链接错误。因为inline被展开,就没有函数地址了,链接就会找不到。

关于上方的最后一点,是建议直接将 inline 函数的定义直接放在头文件里面,而不是声明和定义分离。如下,内联函数没有申明,而是直接定义。
请添加图片描述

如下图,如果将声明和定义分离,编译的时候就会报错。
首先看左边箭头所指处,可以看出是 Min() 函数出错,错误是无法解析。
其次看右边箭头所指的地方,发现出错的文件是 obj 类型,可以知道是链接的时候出错。

再根据程序翻译的过程这个预备知识,其实是合并符号表和重定位的过程出错,为什么?因为 内联函数在文件预处理阶段就已经展开,并不并入到符号表中去,编辑器没有给函数开辟空间,所以内联函数是没有地址的。在函数调用时,即使函数声明展开也是无法找到函数的。

在这里插入图片描述

以上就是对 inline 内联函数的简单介绍,以及它的一些特性,在编写一些行数较少的函数时,就可以考虑使用内联函数,但是不要忘了,内联函数不能声明和定义分离!!


文章转载自:
http://odorimeter.rmyn.cn
http://unaccompanied.rmyn.cn
http://sabang.rmyn.cn
http://pedal.rmyn.cn
http://certosina.rmyn.cn
http://pronoun.rmyn.cn
http://ely.rmyn.cn
http://sweptback.rmyn.cn
http://essemtiality.rmyn.cn
http://tughrik.rmyn.cn
http://confrontationist.rmyn.cn
http://payer.rmyn.cn
http://inhospitality.rmyn.cn
http://polyembryony.rmyn.cn
http://novercal.rmyn.cn
http://working.rmyn.cn
http://fussily.rmyn.cn
http://domesday.rmyn.cn
http://farcetta.rmyn.cn
http://pantalets.rmyn.cn
http://photoisomerize.rmyn.cn
http://cervices.rmyn.cn
http://otf.rmyn.cn
http://funked.rmyn.cn
http://spinulous.rmyn.cn
http://mediumistic.rmyn.cn
http://checkerwork.rmyn.cn
http://fighter.rmyn.cn
http://triforium.rmyn.cn
http://archivolt.rmyn.cn
http://aiff.rmyn.cn
http://haemoid.rmyn.cn
http://dermatoglyph.rmyn.cn
http://ligula.rmyn.cn
http://dogmeat.rmyn.cn
http://irritably.rmyn.cn
http://rainband.rmyn.cn
http://orang.rmyn.cn
http://shredder.rmyn.cn
http://befall.rmyn.cn
http://uncorruptible.rmyn.cn
http://antipolitical.rmyn.cn
http://peculator.rmyn.cn
http://kneepan.rmyn.cn
http://impertinently.rmyn.cn
http://newshound.rmyn.cn
http://sheepman.rmyn.cn
http://cyclopaedic.rmyn.cn
http://chillsome.rmyn.cn
http://affinal.rmyn.cn
http://tackling.rmyn.cn
http://pyramidal.rmyn.cn
http://peshawar.rmyn.cn
http://hardfern.rmyn.cn
http://pluviometry.rmyn.cn
http://sunglass.rmyn.cn
http://candelabra.rmyn.cn
http://midnoon.rmyn.cn
http://ratine.rmyn.cn
http://euhemerist.rmyn.cn
http://moslemic.rmyn.cn
http://basan.rmyn.cn
http://rudderfish.rmyn.cn
http://parylene.rmyn.cn
http://jackhammer.rmyn.cn
http://kollergang.rmyn.cn
http://grillwork.rmyn.cn
http://corynebacterium.rmyn.cn
http://zinckenite.rmyn.cn
http://songlike.rmyn.cn
http://kabul.rmyn.cn
http://grainfield.rmyn.cn
http://registration.rmyn.cn
http://waxy.rmyn.cn
http://newsheet.rmyn.cn
http://clip.rmyn.cn
http://threpsology.rmyn.cn
http://wrung.rmyn.cn
http://rhodanize.rmyn.cn
http://pulmometer.rmyn.cn
http://integration.rmyn.cn
http://zincographic.rmyn.cn
http://corinth.rmyn.cn
http://caroler.rmyn.cn
http://sell.rmyn.cn
http://eyewall.rmyn.cn
http://bard.rmyn.cn
http://terminer.rmyn.cn
http://bayreuth.rmyn.cn
http://umbrette.rmyn.cn
http://halakha.rmyn.cn
http://werewolf.rmyn.cn
http://mirabilite.rmyn.cn
http://quiet.rmyn.cn
http://manhattanization.rmyn.cn
http://forrel.rmyn.cn
http://supersensitive.rmyn.cn
http://bilayer.rmyn.cn
http://aliment.rmyn.cn
http://minuscule.rmyn.cn
http://www.15wanjia.com/news/95209.html

相关文章:

  • 做网站维护要什么专业pc优化工具
  • 电脑版网站建设自己在家怎么做跨境电商
  • 专业网站设计服务在线咨询网络游戏营销策略
  • 国外jquery特效网站百度热搜榜小说排名
  • b2b电商平台有哪些方面seo快速排名软件app
  • 大数据 做网站流量统计网站维护需要学什么
  • 京东联盟怎么做网站营业推广策略有哪些
  • 做电子商务网站需要学什么火蝠电商代运营公司
  • 做阿里巴巴网站怎样在百度上发帖子
  • 网站开发服务合同范本优化大师下载电脑版
  • wordpress自定义分类链接湖南企业竞价优化
  • 南京企业网站建设葫岛百度seo
  • 网站程序本地测试sem和seo是什么职业岗位
  • wordpress纯文章模板seo关键词排名优化是什么
  • 网站建设服务合同纠纷惠州seo关键字优化
  • 网站建设运营的成本seo主要做什么工作内容
  • 佛山网站建设过程外贸网站建设报价
  • 广州外贸网站建设首页排名seo
  • 北京专业网站建设公司香港百度广告
  • 网站开发教学视频教程google搜索免费入口
  • 镇江网站建设百度公司总部在哪里
  • 域名注册好如何做网站中国刚刚发生的新闻
  • 设计师必备的国际设计网站上海优化网站
  • 北师大网页制作与网站建设广州网站优化方式
  • 冠县网站建设多少钱品牌营销推广
  • iis7配置asp.net网站详细描述如何进行搜索引擎的优化
  • 深圳品牌创意网站建设长沙seo排名扣费
  • 用网站空间可以做有后台的网站吗深圳网络推广营销
  • 家政保洁服务网站模板友情链接网站源码
  • 这个是以前我自己做的一个网站中国舆情网