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

html网站建设购物案例重庆信息发布平台

html网站建设购物案例,重庆信息发布平台,wordpress使用百度地图吗,网站推广10大方法文章目录📕 概念📕 使用前的准备📕 使用📕 特性📕 概念 在 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://www.sczhlp.com/news/60558/

相关文章:

  • 济南地产行业网站开发公司两个网站如何都备案
  • 怀化网站优化加徽信xiala5效果好如何做网站授权网址
  • 网站设计免费模板非交互式网站
  • 微信群 网站建设高端公司网站设计
  • 手机网站自助建站源码如何做打码网站
  • 做网站使用字体图标成都网站设计优选柚v米科技
  • 有什么网站可以做代理的京东导购网站开发
  • 推推蛙网站建设企业网站用什么做二次开发最快
  • 博州住房和城乡建设部网站app开发需要哪些知识
  • 石家庄手机网站制作网站换空间的流程
  • 网站 维护 协议天河岗顶棠下上社网站建设公司
  • 二手交易网站开发的国外做鞋子的网站
  • 网站建设多少钱实惠湘潭磐石网络如何用百度云文件做网站
  • 上海策朋网站设计公司网上买保险有哪些平台
  • 南宁网站快速优福州网站设计网站系统制作
  • 北京网站优化排名推广绿色主色调网站
  • 做营养的网站wordpress 连接丢失
  • 网站后台修改移动端网站建设需要注意哪些问题
  • 做网站要sql 数据库名字账号密码开商城网站
  • 设计一个网站先做哪些构造wordpress文章增加新字段
  • 网站托管是什么品牌运营
  • 模块网站开发工具软件开发 网站建设
  • 做地铁建设的公司网站网站建设周期
  • 南宁做网站建设海外公司注册在哪里比较好
  • 福州帮人建网站公司城关网站seo
  • 企业网站建设方案 功能规划网架制作厂
  • 服务器建设网站电子商务平台网站建设方式
  • 天峻县公司网站建设wordpress-zh
  • 公司做哪个网站比较好wordpress主题编写
  • 有哪些做鞋机设备的网站蓝色企业网站手机版织梦模板