什么是内联功能?

时间:2010-09-25 09:00:25

标签: c++

  

可能重复:
  Inline functions vs Preprocessor macros

内联函数的用途及其工作原理是什么? 内联和宏观有什么不同吗?

1 个答案:

答案 0 :(得分:1)

内联函数以与函数相同的方式计算它的参数(或者至少你可以这样想)。这可以防止发生典型的宏错误。另一方面,通过声明函数是内联的,你提示编译器避免函数调用,只是在代码中插入指令(就像宏一样)。

简而言之,它比宏更安全,但只是对编译器的暗示。不强制编译器避免函数调用(至少如果我没记错的话)。

顺便说一下,“典型宏观错误”的例子:

#define SQUARE(a) (a*a)

int x = 10;
int square = SQUARE(++x); // this turns out to be 11 * 12, instead of 11 * 11

内联函数将执行11 * 11而不是。