赞
踩
C99标准新增了内联函数定义。内联函数直接用函数体代码来替代对函数的调用,这一过程称为函数体的内联展开。
内联函数优点:对于只有几条语句的函数来说,与函数的调用(参数复制到寄存器、压栈等)、返回(返回值复制到寄存器、出栈等)有关的准备和收尾工作的代码往往比函数体本身的代码要大得多。因此,对于这类简单的、使用频繁的小函数,将之说明为内联函数可提高运行效率。
内联函数缺点:内联是以代码膨胀复制为代价,仅仅省去了函数调用的开销,从而提高函数的执行效率。
inline 是一个关键字,用于建议编译器在编译时将函数的具体代码插入到函数调用的地方,而不是像传统的函数调用那样跳转到函数的地址执行。也就是说,开发者只有建议权,只有编译器具有决定权。
如果编译器没有将函数作为内联函数,那么如果没有static修饰,而定义函数的头文件又被多个文件include,会造成函数的多重定义,导致编译错误,这种情况加上static将函数的有效范围限制在文件内部。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。