位置: IT常识 - 正文

C++ inline(CINLINELE工具)

编辑:rootadmin
1.inline可以免除函数调用时的保存上下文时的一些开销,其本质就是对此函数的每一个调用都以函数本体替换之。 inline的坏处:若在一台内存有限的机器上,过度热衷inlining会造成程序体积太大,即使拥有虚拟内存,inline造成的代码膨胀也会导致额外的换页行为,降低指令高速缓存装置的集中率, ... 1.inline可以免除函数调用时的保存上下文时的一些开销,其本质就是对此函数的每一个调用都以函数本体替换之。

inline的坏处:若在一台内存有限的机器上,过度热衷inlining会造成程序体积太大,即使拥有虚拟内存,inline造成的代码膨胀也会导致额外的换页行为,降低指令高速缓存装置的集中率,以及伴随这些而来的效率。

但是好处是,如果inline函数的本体很小,编译器针对函数本体所产出的码可能比函数调用所需要的开销等所产出的码更小。那么inlining函数可以导致较小的目标码和较高的指令告诉缓存装置击中率。

inline只是对编译器的一个申请,不是强制命令。这项申请可以隐喻提出,也可以明确提出。

隐喻方式

class person{ public: int age() const {return theAge;} private: int theAge;}

这样的函数通常是成员函数。

明确方式template<typename T>inline const T& std::max(const T& a, const T& b){ return a<b?b:a;}

有关键字在开头。

使用inline后,编译器会根据代码来判断是否可以inlining,inlining在大多数C++程序中是编译期行为。非常少部分是运行期行为。

2.inline是个申请,编译器可加以忽略。大部分编译器拒绝将太过复杂(例如带有循环或递归)的函数inlining,而对所有虚函数(除非是最平淡无奇的)也都会使得inlining落空。因为virtual意味着“等待,直到运行期才确定调用哪个函数”,而inline意味着执行前,先将动作替换为被调用函数的本体。如果编译器不知道该调用哪个函数,则没办法将函数本体inlining。

与此并提的是,编译器通常不对“通过函数指针而进行的调用”实施inlining,这意味着对inline函数的调用有可能被inlined,也可能不被inlined,取决于实施方式。

inline void f() {...}void (*pf) () = f;​...f(); //将被调用,其是一个正常调用pf(); //这个或许不被调用,因为它通过函数指针达成

3.最后,如果想inline类的构造函数,析构函数得再三考虑。因为C++对于“对象被创建和被销毁时发生了什么事”做了各式各样的保证。当你使用new,动态创建的对象被其构造函数自动初始化;当你使用delete,对应的析构函数会被调用。当你创建一个对象,其每一个base class以及每一个成员变量都会被自动构造;当你消费一个对象时,反向程序的析构行为也会自动发生。如果有个异常在对象构造期间被抛出,该对象已构造好的那一部分也会被自动销毁。在这些情况中C++描述了什么一定会发生,但没有说如何发生。事情如何发生事由编译器实现者的权责,不过至少有一点很清楚,那就是他们不可能凭空发生。在你的程序内一定有某些代码能让那些事情发生,而那些代码——由编译器于编译期间代为产生并安插到你的程序中的代码——肯定存在某个地方,有时候就放在你的构造函数和析构函数内。

推荐整理分享C++ inline(CINLINELE工具),希望有所帮助,仅作参考,欢迎阅读内容。

C++ inline(CINLINELE工具)

文章相关热门搜索词:C++ inline后反而变慢了,CINLINELE是什么牌子工具,C++ inline函数的定义一定要写在头文件里面吗?,C++ inline关键字,C++ inline关键字,C++ inline的好处,C++ inline后反而变慢了,C++ inline关键字,内容如对您有帮助,希望把文章链接给更多的朋友!

实际上的Derived()

4.inline函数本质上是将代码在编译期间写入调用函数内,故如果被inline的函数f()更改,那么调用过f()的函数都得重新编译。这是一个大问题,需要考虑。而被调用的函数如果是以正常的头文件调用形式的话(即non_inlined)那么只要修改头文件,重新链接库即可。

本文链接地址:https://www.jiuchutong.com/zhishi/309231.html 转载请保留说明!

上一篇:python中np.insert()函数的使用方法(python中insert函数怎么用)

下一篇:python字典中添加新的键值(python字典添加数据)

  • 网页游戏试玩怎样赚钱?(试玩网页游戏的平台)

    网页游戏试玩怎样赚钱?(试玩网页游戏的平台)

  • 微信群发红包怎么发给指定人(微信群发红包怎么设置别人看不到金额)

    微信群发红包怎么发给指定人(微信群发红包怎么设置别人看不到金额)

  • vivo NEX 3s一共几颗摄像头(vivo nex 3s 百度百科)

    vivo NEX 3s一共几颗摄像头(vivo nex 3s 百度百科)

  • ipadmini4可以用什么笔(ipad mini4可以用)

    ipadmini4可以用什么笔(ipad mini4可以用)

  • 惠普2025硒鼓型号(惠普2055硒鼓)

    惠普2025硒鼓型号(惠普2055硒鼓)

  • 作为垃圾信息送达对方能看到吗(作为垃圾信息送达对方是被拉黑了吗)

    作为垃圾信息送达对方能看到吗(作为垃圾信息送达对方是被拉黑了吗)

  • 微信语音时别人打语音过来(微信语音时别人打电话能打进来吗)

    微信语音时别人打语音过来(微信语音时别人打电话能打进来吗)

  • 以前的手机号可以补回来吗(以前的手机号可以去营业厅找回吗)

    以前的手机号可以补回来吗(以前的手机号可以去营业厅找回吗)

  • 苹果11丢了关机怎么找(苹果11丢了关机了报警有用吗)

    苹果11丢了关机怎么找(苹果11丢了关机了报警有用吗)

  • 老家信号差怎么能增强(老家信号差网络差咋办)

    老家信号差怎么能增强(老家信号差网络差咋办)

  • ipadpro可以插u盘吗(ipadpro能插优盘吗)

    ipadpro可以插u盘吗(ipadpro能插优盘吗)

  • 微信怎么查账单明细(微信怎么查账单号)

    微信怎么查账单明细(微信怎么查账单号)

  • 手机激活了能退吗(手机激活了退货退款商家拒绝了申请了平台介入有用吗)

    手机激活了能退吗(手机激活了退货退款商家拒绝了申请了平台介入有用吗)

  • 苹果11分辨率是几k(苹果11分辨率是多少像素)

    苹果11分辨率是几k(苹果11分辨率是多少像素)

  • 怎么增加手机内存(更换手机后如何删除旧手机上内容)

    怎么增加手机内存(更换手机后如何删除旧手机上内容)

  • 微信转错钱怎么追回(微信转错钱怎么收回)

    微信转错钱怎么追回(微信转错钱怎么收回)

  • vivo手机怎么调不息屏(vivo手机怎么调出下面的三个按键)

    vivo手机怎么调不息屏(vivo手机怎么调出下面的三个按键)

  • 美团定后砍五折什么意思(美团订后砍5折是什么意思)

    美团定后砍五折什么意思(美团订后砍5折是什么意思)

  • 微信步数每天几点截止(微信步数每天几百在干嘛)

    微信步数每天几点截止(微信步数每天几百在干嘛)

  • 华为p30pro相机美颜功能在哪里设置(华为p30pro美颜相机感觉有点模糊)

    华为p30pro相机美颜功能在哪里设置(华为p30pro美颜相机感觉有点模糊)

  • 小米蓝牙耳机air怎么切歌(小米蓝牙耳机air2 se连接不上)

    小米蓝牙耳机air怎么切歌(小米蓝牙耳机air2 se连接不上)

  • 来信息亮屏怎么设置(来信息亮屏怎么弄)

    来信息亮屏怎么设置(来信息亮屏怎么弄)

  • randomdigits.exe - randomdigits是什么进程 有什么用

    randomdigits.exe - randomdigits是什么进程 有什么用

  • 【使用说明】帝国cms万能通用api二次开发核心包(帝度官网 说明书)

    【使用说明】帝国cms万能通用api二次开发核心包(帝度官网 说明书)

  • 拍卖公司没开发票违法吗
  • 每年税务师考试几次
  • 要约和承诺有法律效力吗
  • 用友t3软件的系统内没有利润表模块
  • 小微企业十万免税从什么时候开始
  • 个人独资企业租赁收入如何纳税
  • 季度预缴能不能弥补亏损
  • 新会计准则开办费分摊
  • 房产折旧计算方法 举例
  • 工业企业辅助生产费用的分配方法
  • 产品保修发生的维修费计入什么科目
  • 出口样品收汇不报关会计分录
  • 无形资产后续支出计入什么科目
  • 出口用的增值税税率
  • 公司一年未经营怎么赔偿
  • 消费金融服务要交税吗
  • 采购材料差旅费怎么入账
  • 处置打包债权如何缴纳个人所得税?
  • 年末会计账上应该注意哪些
  • 跟银行借款按月还款
  • 固定资产清查盘亏账务处理
  • 个人购买余额宝安全吗?
  • 捐赠所得税视同销售怎么处理
  • 个税7月申报7月怎么填
  • 双倍余额法折旧率计算公式
  • i7笔记本cpu性能天梯图
  • 穿越火线下载安装
  • php中面向对象
  • 集团内部调拨账务处理
  • 对公账户自己扣钱
  • php url编码转换
  • wwwxxx域名选择(www.xxx.com或者.cn)
  • uniapp多端兼容
  • 踩坑视频
  • 个体户对公账户怎么办理
  • 企业间无偿借款涉税
  • vue实现鼠标悬浮 显示全部内容
  • php写excel
  • 年中建账年初余额怎么录入
  • 塔河流域
  • electronx
  • 预提费用的分录
  • st的电机库性能怎么样呢
  • 建筑业异地预缴增值税
  • php中cookie的使用
  • 会计证的作用和用途
  • 以美元报关是否要交税
  • 事业单位劳务派遣是啥意思
  • 收到费用发票分录
  • 港币转人民币怎么算
  • 不动产分割要哪些步骤
  • 小微企业营业外收入二级科目怎么
  • 应收账款多出来的钱记到什么科目
  • 总公司可以给子公司开票吗
  • 已经认证的进项发票在哪里查询
  • 免征的教育费附加怎么做账
  • 预缴所得税年底怎么算
  • 小规模纳税人月销售额超过10万怎么交税
  • 待处理财产损益是备抵类科目吗
  • 年初建账考虑要点有哪些
  • 备查账簿的格式和登记方法
  • 工业企业固定资产投资
  • 企业收到的应收票据应按什么作为入账金额
  • 批量查询sql语句
  • sql语句数字转化为文字
  • win8 更新
  • windows u盘制作
  • 介绍两个很常用的成语
  • 电脑开机显示xp后无反应
  • xp系统部分乱码解决
  • css一般可以放在几个地方
  • node.js创建服务
  • 个人纳税记录为多少
  • 进项税销项税抵扣公式
  • 提租补贴什么标准发放
  • 已经开票的房子还能退吗
  • 律师属于什么工作单位
  • 个体户刻公章需要备案吗
  • 出口货物计算公式
  • 广州代理记账公司注册
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设