版本4和5间的区别
于2008-02-23 15:35:53修订的的版本4
大小: 1127
编辑: localhost
备注: converted to 1.6 markup
于2008-03-13 21:00:55修订的的版本5
大小: 1149
编辑: czk
备注:
删除的内容标记成这样。 加入的内容标记成这样。
行号 1: 行号 1:
== 内联函数 ==

内联函数

一般函数调用速度较慢。对于短小和使用频繁的函数,需要加快调用的速度,C语言使用带参数的宏,C++可以使用内联函数(inline function)。比如:

   1 int max( int x, int y) {
   2      return x>y? x : y;
   3 }
   4 int arraymax(int array[], int n) {
   5     int m = INT_MIN;
   6     for(int i = 0; i < n; i++) {
   7         m = max(m, array[i]);    // m = ( m > array[i]?m:array[i]);
   8     }
   9     return m;
  10 }

其中,max函数被反复调用,需要改进它的效率。在C语言中可以用宏:

   1 #define max(x, y) ((x)>(y)?(x):(y))
   2 

而在C++中还可以用内联函数:

   1 inline int max(int x, int y) {
   2     return x>y?x:y;
   3 }

注意:

  • 使用内联函数会增加目标代码的体积,是一种牺牲空间换取速度的策略。
  • 内联函数的函数体不能过于复杂,过于复杂的内联函数,编译器不能生成优化的代码而只能当作普通函数来处理。
  • 内联函数的定义必须写在头文件中,或者与使用它的代码写在同一个源文件中。


CategoryCpp

C++:内联函数 (2008-03-13 21:00:55由czk编辑)

ch3n2k.com | Copyright (c) 2004-2020 czk.