常规函数:程序执行到函数调用时
1.储存该函数调用的内存地址
2.将函数参数复制到堆栈
3.跳到标记函数的起点的内存单元,执行函数代码
4.再回到第1步储存的地址。
内联函数:在编译时,编译器将使用相应的函数代码替换函数调用。
内联与宏宏:通过文本替换来实现调用。不能按值来传递参数。
#define SQUARE(X) (x*x) //有可能出现SQUARE(5+5)替换结果(5+5*5+5)=35的情况 //并且SQUARE(C++)替换结果(C++*C++)先自增两次再相乘
内联函数:按值来传递参数实现调用。
inline int square(int x) { return x * x; }
//调用square(c++)先传c的值,再进行平方,最后自增1.
使用情况
常规函数:来回跳跃并记录跳跃位置会有一定的运行开销
内联函数:1.多次调用占用更多内存
2.不能使用递归
使用高度频繁,而且操作内容简单的情况下使用内联函数。



