首页 > 其他分享 >inline限定符

inline限定符

时间:2024-09-30 11:48:06浏览次数:5  
标签:调用 函数 编译器 内联 inline 限定符 展开

  • 在函数定义中使用,将函数声明为内联函数,在该函数的调用处直接展开

  • 特点

    • 只是一个对编译器的建议

    • 只适合在功能简单的函数处定义,不能包含forwhileswitch,并且不是递归函数

    • inline编译器展开,而不是链接时,所以内联函数和其调用函数必须在同一个编译单元

    • 定义在 classstructunion 内的函数,不管是不是friend,都会被隐式的声明为内联

    • 构造析构 函数不一定是内联的

    • 虚函数表现出多态性不是内联的,多态处在运行期,编译器不知道运行时虚函数会调用哪个代码

  • 优点

    • 和宏一样在被调处展开,省去了参数压栈、栈帧的开辟与回收、结果返回等过程,能够提高函数的执行效率

    • 可以进行 安全检查类型检查,而宏不会

    • 可以作为函数被调试

  • 缺点

    • 若函数体代码比较长,内联将导致高内存消耗(无论被调用多少次,都会将内联函数展开

    • 若函数的 执行调用 的开销大,那么内联的效率收获就很低

  • 参考链接

标签:调用,函数,编译器,内联,inline,限定符,展开
From: https://blog.csdn.net/bwb147/article/details/142653773

相关文章

  • 通过 Dll 注入实现应用层跨进程 inline 挂钩
    一、导入Detours库Detours是微软提供的一个开发库,可以简单、高效且稳定的实现APIhook。Detours是一个可以在x86、x64和IA64平台上挂钩任意win32函数的程序开发库,它通过在需要进行挂钩的目标函数头部重写内存代码而达到接管函数控制权,进而实现自己功能的目的。除此之......
  • HtmlWebpackPlugin插件和HtmlWebpackInlineSourcePlugin插件的使用
    一、HtmlWebpackPlugin1.作用自动创建HTML自动创建HTML:在构建过程中自动生成一个HTML5文件,该文件可以包含所有webpack打包过程中生成的bundles。这意味着你不需要手动创建HTML文件,插件会为你处理这一切。自动注入资源:自动将打包生成的JavaScript、CSS等文件注入到生成的HTML文......
  • 条款02: 尽量以const,enum,inline 替换 #define
    宏实现1.宏定义有可能从未被编译器看到,找不到宏定义2.宏有可能存在多份#defineASPECT_RATIO1.6531.宏实现函数,必须为宏中所有实参加上(),即使加上也会有被多次调用template<typenameT>inlinevoidprint(Tdata){ std::cout<<data<<std::endl;}#define......
  • C++基础/限定符及一些关键字在限定函数的作用
    在学习中发现对const在限定函数的作用有些模糊,以下为笔者的学习总结1.5cv限定符及一些关键字在限定函数的作用c(const)v(volatile)const:用于表示该函数不会改变类的成员变量,所以是可以修改全局变量的volatile:用于告诉编译器该对象可能会被程序外部修改#include<iostream>......
  • 更懂你的文心快码 Inline Chat 全新上线,带来更加简化交互式的编程体验!
    更懂你的文心快码 InlineChat 全新上线,带来更加简化交互式的编程体验,充分适应程序员的编程和使用习惯。代码行内集成、智能生成、智能问答,无需跳出编辑区,AI就在你手边看,开发过程更流畅。那么Inlinechat如何助力实际开发场景?CoCo为大家展开讲讲。更懂你的文心快码......
  • golang json inline用法
    packagemainimport( "encoding/json" "fmt")typeProjectstruct{ Keystring`json:"key"` Valuestring`json:"value"`}typeJiraHttpReqFieldstruct{ Project`json:",inline"` Summarystring`jso......
  • INLINE Data Link Adapters for Engine Diagnostics
    INLINEdatalinkadaptersaredesignedtofacilitatecommunicationbetweentheengine'sECM(ElectronicControlModule)anddiagnostictools.Availableinthreemodels,theseadapterscanbesourcedfromyourlocalCumminsdealerordistributor:INLIN......
  • Django Admin TabularInline:如何通过模型隐藏 M2M 的对象名称?
    如何在管理显示中隐藏Unit_attributeobject(3)?admin.py:fromdjango.contribimportadminfromcore.modelsimportAttribute,UnitclassUnitAttributeInline(admin.TabularInline):[email protected]......
  • C++关键字——inline和auto
    目录一、前言 二、inline关键字(C++11)---多用于内联函数a.概念b.特性三、auto关键字(C++11)a.auto简介b.auto的使用细则c.auto不能推导的场景d.基于范围的for循环(C++11)一、前言C++总计63个关键字,我们先了解inline和auto这两个关键字。asmdoifreturntrycontinue......
  • dpdk下ipsec内联卸载(inline offload)测试
    使用intel82599网卡完成。介绍本文介绍了数据平面开发套件(DPDK)框架中的内联IPsec加速支持实现,特别关注英特尔®8259910千兆以太网控制器系列的功能和支持。内联IPsec可用于实现IPsec感知系统,该系统具有比旁路辅助和加速硬件更好的延迟,前提是支持的算法合适。......