对于一个频繁调用的短小函数,如果我们正常的作为一个函数来调用,会增加时间和空间的开销,影响函数的执行效率。
在C语言中,我们常用宏定义来实现,在C++中,我们使用内联函数(inline)来实现。
宏定义和内联函数(inline)的区别
1、inline在编译期间展开(将实参传递给形参,使用函数的代码替换函数的调用),而宏在预处理时进行文本替换。
2、inline标识的是一个函数,采用的是参数传递,而宏定义是文本替换的一种方式。
3、内联函数会进行类型的安全检查、语法判断,而宏定义在文本替换后有可能导致编译错误。
4、宏是无类型的,将其用于如何类型,运算都是有意义的。内联函数则需要通过创建模板使得函数独立于类型。