C++内联函数

内联函数的作用

使用inline修饰函数的声明或者实现,可以使其变成内联函数,建议我们在声明和实现都写上inline

内联函数的特点

编译器会将函数的调用,直接展开为函数体的代码,可以减少函数调用的堆栈开销,但是会增大代码的体积

使用内联函数的注意事项

尽量不要内联超过10行代码的函数
有些函数即使声明为inline,也不一定会被编译器内联,比如递归函数。

内联函数和宏的区别

虽然内联函数和宏都可以减少函数调用的堆栈开销,但是内联函数比宏多了语法检测和函数特性

example

对比这2种写法的异同

#define sum(x) (x+x)

inline int sum(int x) {
    return x + x ;
}

int main(){
    int a = 10;
    cout << sum(a++) << endl;
    return 0;
}

在输出结果的时候,使用inline 的函数输出20,使用宏输出了21,内联函数在某些时候相比宏是更加安全的。

posted @ 2021-08-05 15:31  弄啥来  阅读(101)  评论(0)    收藏  举报