以前对内联不甚了了,只是简单的使用,或者压根就没想到要用
今天看了看钱能的<<C++大学教程>>内联函数的解释,感觉无非就是将INLINE处的代码展开而
替代了函数调用而已,不用函数调用,不用新创建为此函数的栈空间,而省了调用函数产生的空间
和时间的消耗,希望这个理解是正确的
对了,书上还提到一些限制:
1.内联不能有太复杂结构控制语句
2.递归函数不能用做内联
3.只适合大概5行左右,没复杂结构的小函数,太大的话,函数调用就算不了什么没必要再用内联
还有宏定义也可以实现类似内联功能,比如
#define MAX(a,b) ((a)>(b)?(a):(b))
没有参数类型检查和其他一些参数造成的问题