内联函数的用途及其工作原理是什么? 内联和宏观有什么不同吗?
答案 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而不是。