大学在教科书上学习过inline函数,定义为inline函数之后,会省去函数调用的开销,直接嵌套汇编代码,取代函数调用,提高效率。工作后项目中也 很少用到inline来定义函数,近几天在研读google的google c++ style guide,发现之前自己对inline函数的认识太过肤浅了,这里学习总结一下。
1、inline函数不要超过10行代码,且不能包含循环、switch、if语句
2、在一个c文件中定义的inline函数是不能在其它c文件中直接使用,google推荐把inline函数定义在**-inl.h头文件中。
3、不要过度使用inline函数定义,尤其对大函数来说
上面三点说明如何正确的使用inline函数,我以前的时候对inline理解不透彻,使用inline的方式不正确,但现在编译器够先进,能保证错误的inline定义也可以正确编译、运行。可能会有性能的缺失。
我在F14(gcc 版本 4.5.1 20100924 (Red Hat 4.5.1-4) (GCC))上做了个实验:
1、当inline函数超过10行,并且包含了循环、switch语句后gcc会执行inline语义,将inline函数汇编嵌入到main函数中。
//gcc n.c -O2 -S
#include
#include
//inline int inc_inline(volatile int *j);
inline int inc_inline(volatile int *j)
{
for (;*j < 100; (*j)++)
{
*j += 2;
(*j)++;
c语言inline函数的使用
最新推荐文章于 2024-07-26 11:37:03 发布
本文探讨了C语言中inline函数的使用,包括其优化作用、限制条件以及不当使用可能导致的性能下降。作者通过实验说明,inline函数并不总是提高效率,过度使用可能导致代码分散,影响缓存命中率,从而降低性能。同时,建议将inline函数定义在单独的-inl.h头文件中,以确保正确使用。
摘要由CSDN通过智能技术生成