C++ | inline关键字和内联函数

inline关键字

作用:避免频繁调用函数对栈内存重复开辟所带来的消耗。

在 c/c++ 中,为了解决一些频繁调用的小函数大量消耗栈空间(栈内存)的问题,特别的引入了 inline 修饰符,表示为内联函数。

栈空间就是指放置程序的局部数据(也就是函数内数据)的内存空间。

在系统下,栈空间是有限的,假如频繁大量的使用就会造成因栈空间不足而导致程序出错的问题,如,函数的死循环递归调用的最终结果就是导致栈内存空间枯竭。

内联函数

C++内联函数是通常与类一起使用。如果一个函数是内联的,那么在编译时,编译器会把该函数的代码副本放置在每个调用该函数的地方。

对内联函数进行任何修改,都需要重新编译函数的所有客户端,因为编译器需要重新更换一次所有的代码,否则将会继续使用旧的函数。

如果想把一个函数定义为内联函数,则需要在函数名前面放置关键字 inline,在调用函数之前需要对函数进行定义。

要点(Tips)

  1. 在内联函数内不允许使用循环语句和开关语句,并且不能内联函数本身不能是直接递归函数;
  2. 内联函数的定义必须出现在内联函数第一次调用之前;
  3. 类结构中所在的类说明内部定义的函数是内联函数。
  4. inline仅是一个对编译器的建议;
  5. 建议 inline 函数的定义放在头文件中;
  6. 关键字 inline 必须与函数定义体放在一起才能使函数成为内联,仅将 inline 放在函数声明前面不起任何作用;
  7. 慎用inline关键字。

参考

  1. https://www.runoob.com/w3cnote/cpp-inline-usage.html
  2. https://www.runoob.com/cplusplus/cpp-inline-functions.html

原文链接: https://www.cnblogs.com/casperwin/p/12508350.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    C++ | inline关键字和内联函数

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/335856

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月1日 下午10:20
下一篇 2023年3月1日 下午10:21

相关推荐