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

郑州建设招标办网站镇江京口发布

郑州建设招标办网站,镇江京口发布,wordpress用户注册页面,韦博在上面做课件的网站叫什么C/C 之中 inline 是一个很有意思的关键字#xff0c;奇奇怪怪的用法见过不少#xff0c;今天抽点时间出来聊聊这个东西。 inline 可以用在那些方面#xff1f;修饰 inline 内链关键字到底有什么作用#xff1f; OK#xff1a;started 1、inline 可以用在类成员函数的声明…C/C 之中 inline 是一个很有意思的关键字奇奇怪怪的用法见过不少今天抽点时间出来聊聊这个东西。 inline 可以用在那些方面修饰 inline 内链关键字到底有什么作用 OKstarted 1、inline 可以用在类成员函数的声明上面如下所示 class Foo final { public:inline Foo() noexcept {printf(%s\n, .ctor);}inline void Say() {printf(%s\n, hello world!);} }; 上述代码没有必要在函数上显示声明inline 内链因为如上述代码均会被隐式声明为 inline 函数。 无论上述类实现写在头文件.h或者是源文件.cpp之中。 所以若成员函数实现在类中不需要显示声明 inline 堆代码字节数。 2、inline 可以用在类成员函数的实现如下所示 #include stdio.hclass Foo final { public:Foo();void Say(); };inline Foo::Foo() {printf(%s\n, .ctor); }inline void Foo::Say() {printf(%s\n, hello world!); }上述代码可以写在头文件之中也可以写在源文件之中但如果取消了 inline那么写在头文件之中被多个源文件 include 那么就会导致符号重定义冲突单个源文件引入却不会。 3、inline 可以在全局函数上面修饰如下所示 inline int Add(int x, int y) {return x y; } 上述代码可以写在头文件之中也可以写在源文件之中但如果取消了 inline那么写在头文件之中被多个源文件 include 那么就会导致符号重定义冲突单个源文件引入却不会。 inline 关键字的作用有几个方面 1、头文件之中定义函数实现 2、建议编译器通过内嵌的方式优化代码执行能效 3、inline 函数由调用的函数递归链的源文件来实现 所以inline 函数可以访问未被它引入的类型或函数这取决于编译器。 inline 关键字声明并不意味着编译器会把声明 inline 的函数内嵌到调用该函数的程序之中这取决于函数的复杂度。 不会被优化但被声明为 inline 的函数 1、函数指针或函数引用 2、复杂的 inline 函数体 3、虚函数 4、递归函数 那些函数被声明为 inline 通常会被编译器优化呢 即单个函数体内具备少量的 for 循环逻辑结构简单嵌套层数少并且函数体代码行数不多几行以内的最佳。 例如 一个简单的加法、乘法、除法函数。 即 不满足下面这个条件 inline 函数实现非常复杂包含大量的代码逻辑、循环或递归等编译器可能认为将其内联展开会导致代码膨胀影响可执行文件的大小和性能。 但需要注意一点inline 是否生效取决于编译器的代码优化级别、跟编译器对于 inline 函数展开的文件大小、及性能的评估。 一个形象的例子 #include stdio.hclass Foo final { public:Foo();void Say(); };inline Foo::Foo() {printf(%s\n, .ctor); }inline void Foo::Say() {printf(%s\n, hello world!); }int main() {Foo foo;foo.Say(); return 0; } 在未打开优化的情况下 内链函数不会被编译器优化 .LC0:.string .ctor Foo::Foo() [base object constructor]:push rbpmov rbp, rspsub rsp, 16mov QWORD PTR [rbp-8], rdimov edi, OFFSET FLAT:.LC0call putsnopleaveret .LC1:.string hello world! Foo::Say():push rbpmov rbp, rspsub rsp, 16mov QWORD PTR [rbp-8], rdimov edi, OFFSET FLAT:.LC1call putsnopleaveret main:push rbpmov rbp, rspsub rsp, 16lea rax, [rbp-1]mov rdi, raxcall Foo::Foo() [complete object constructor]lea rax, [rbp-1]mov rdi, raxcall Foo::Say()mov eax, 0leaveret 在打开优化的情况下 内链函数被优化掉到调用方函数之中了 main: # mainpush raxmov edi, offset .L.str.1call putsmov edi, offset .L.str.2call putsxor eax, eaxpop rcxret .L.str.1:.asciz .ctor.L.str.2:.asciz hello world!
http://www.w-s-a.com/news/579806/

相关文章:

  • 电商网站建设与运营网上购物哪个网站最好
  • 做app做网站从何学起网站设计需要什么证
  • 设计网站最重要的是要有良好的短网址还原
  • 大连建设银行招聘网站做seo是要先有网站吗
  • 中山做网站的wordpress建站教程百科
  • 湛江专业网站制作做网站需要工具
  • 做音箱木工网站吉林平安建设网站
  • 品牌网站建设咨询灯光设计网站推荐
  • 温州网站运营打开百度一下网页版
  • 网站有情链接怎么做住房公积金个体工商户
  • 内蒙古网站开发网站开发验收资料
  • 温州网站建设首选国鼎网络网络营销方法可分为两类
  • 做张家界旅游网站多少钱企业推广网络营销
  • 代做毕设网站推荐广东手机微信网站制作
  • 福州建设工程质量监督网站专业做公司宣传网站的
  • 百度云建站教程网站工程师是做什么的
  • 手机在线制作网站一级消防工程师考试试题及答案
  • 网站设计的需求网页制作教程和素材
  • 徐州网站建设 网站推广WordPress 文章编辑
  • 做什么网站比较受欢迎软件商店下载安装2023版本最新
  • 做ip资讯的网站怎么在wordpress中套用同行网页
  • 医院网站如何备案东莞优化公司收费
  • 罗村网站开发适合ps做图的素材网站有哪些
  • 网站建设中 油财宝企业网址怎么整
  • asp.net空网站php网站开发要学什么
  • 做可视化的网站微信网站模版下载
  • 包头移动的网站建设茂名建站价格
  • 网站文章内容一键排版功能铜山网站建设
  • cdr可不可做网站对网站建设起到计划和指导的作用
  • 合肥最好的网站建设网页设计心得体会2000字