亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

C++之內聯函數

標簽:
C++

介绍
内联函数一般在代码中用inline修饰,当一个函数被声明为内联函数,编译器将使用相应的函数代码替换函数调用,程序无序跳到另外一个位置执行代码,运行速度比常规函数快,但是占用了更多的内存,如果程序在10个不同的地方调用同一个内联函数,该程序将包含该函数的10个副本。
普通函数
就是函数声明或者定义前加上inline使其成为内联函数
成员函数
在类中定义的成员函数默认是内联的,可以显示加上inline,或者不加。
和宏的区别:

  1. 内联函数在编译时展开,宏在预编译时展开
  2. 内联函数是直接嵌入到目标程序中,宏是简单的文本替换
  3. 内联函数是一个函数,有类型检测,语法判断,而宏没有

以下情况不宜使用:

  1. 函数体内的代码长,将消耗很多内存,因为要创建副本
  2. 函数体内有循环,函数执行时间比函数调用开销大

构造函数、析构函数和虚函数能否声明为内联函数
构造和析构函数:将构造函数和析构函数声明为inline是没有什么意义的,即编译器并不真正对声明为inline的构造和析构函数进行内联操作,因为编译器会在构造和析构函数中添加额外的操作(申请/释放内存,构造/析构对象等),致使构造函数/析构函数并不像看上去的那么精简。其次,class中的函数默认是inline型的,编译器也只是有选择性的inline,将构造函数和析构函数声明为内联函数是没有什么意义的。
虚函数:当是指向派生类的指针(多态性)调用声明为inline的虚函数时,不会内联展开;当是对象本身调用虚函数时,会内联展开,当然前提依然是函数并不复杂的情况下。

参考:<<C++primer plus>>
<<王道程序员求职宝典>>
https://www.cnblogs.com/helloweworld/archive/2013/06/14/3136705.html
————————————————
版权声明:本文为CSDN博主「小面包爱我」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_44559016/article/details/117151241

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消