以inline修饰的函数叫做内联函数,编译时c++编译器会在调用内联函数的地方展开,没有函数压栈的开销,提升程序运行的效率。(类似定义宏)
在c语言中我们通常面对短小的函数,但是确需使用较多次数时,会使用宏定义
场景:堆排序和快速排序以及swap函数等等。
宏的优点:a.复用性强 b.提高程序运行的效率,减少栈帧的建立。
宏的缺点:a.可读性变差 b.没有类型安全检查 c.不方便调试
然而在c++中基本不再建议使用宏函数,在《effective c++》中一个条款说明:
尽量使用const、enum、inline去替代宏。
并且inline基本解决了宏的缺点,同时兼具了其他优点
需要注意inline函数不建议声明和定义分离,分离会导致链接错误。