文章目录 一、概念 二、特性 1、inline是一种以空间换时间的做法如果编译器将函数当成内联函数处理在编译阶段,会用函数体替换函数调用 2、inline对于编译器而言只是一个建议若一个函数代码很长则编译器不会将它变成内联 3、一般来说,函数代码在10行及以内时这时编译器会将它优化为内联函数有些编译器是在30行以内 4、内联函数的定义和声明不能分开因为inline被展开后就没有函数地址了,链接时会找不到 一、概念 以inline修饰的函数叫做内联函数 编译时C++编译器会在调用内联函数的地方展开 没有函数调用建立栈帧的开销 内联函数提升程序运行的效率 在这样一场景里,堆排和快排排序10w或更多的数据,里面swap函数会被调用很多次,没调用一次都会单独创建一个栈帧,这样空间开销就会很大,严重影响程序运行的效率 C语言解决这个问题只有通过宏 但是宏的缺点有很多,总共有以下几点: 1.可读性差 2.没有类型安全检查 3.不方便调试 同时也有几个优点: 1.可维护性高:比如一