当前位置:   article > 正文

C语言内联函数定义inline前加static原因_inline static

inline static

1. C语言内联函数与inline关键字介绍

        C99标准新增了内联函数定义。内联函数直接用函数体代码来替代对函数的调用,这一过程称为函数体的内联展开。

       内联函数优点:对于只有几条语句的函数来说,与函数的调用(参数复制到寄存器、压栈等)、返回(返回值复制到寄存器、出栈等)有关的准备和收尾工作的代码往往比函数体本身的代码要大得多。因此,对于这类简单的、使用频繁的小函数,将之说明为内联函数可提高运行效率。

      内联函数缺点:内联是以代码膨胀复制为代价,仅仅省去了函数调用的开销,从而提高函数的执行效率。

2. inline前加static原因

       inline 是一个关键字,用于建议编译器在编译时将函数的具体代码插入到函数调用的地方,而不是像传统的函数调用那样跳转到函数的地址执行。也就是说,开发者只有建议权,只有编译器具有决定权。

       如果编译器没有将函数作为内联函数,那么如果没有static修饰,而定义函数的头文件又被多个文件include,会造成函数的多重定义,导致编译错误,这种情况加上static将函数的有效范围限制在文件内部。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/626837
推荐阅读
相关标签
  

闽ICP备14008679号