c++中的内联函数

一、介绍

c++中内联函数通常和类一起使用,内联函数使用关键字inline修饰。如果一个函数是内联函数,那么在编译时,编译器会将符合内联函数的内联函数代码副本插入到调用的地方。如果内联函数的行数过多,编译器会忽略inline限定符,不会采用内联函数的处理方式处理。

在类定义中的定义的函数都是内联函数,即使没有使用 inline 说明符。

#include <iostream>
using namespace std;

inline int max(int x, int y)
{
    return (x > y) ? x : y;
}

inline int get_sum(int x, int y)
{
    int a = x;
    int b = y;
    return a + b;
}

int main()
{
    cout << max(3, 4) << endl;
    cout << get_sum(3, 4) << endl;//get_sum函数行数超过1行,编译器会当作普通函数处理
    //输出
    //    4
    //    7
}

二、内联函数和宏定义的区别

1.内联函数和普通函数

内联函数与普通函数相比,内联函数在编译期间编译器把内联函数代直接替换到了代码调用上下文,执行时不需要进行中断和压栈出栈等操作,可以提高程序效率。

2.内联函数和宏

内联函数是在编译时进行代码嵌入替换,而宏只是简单的字符替换,不会进行类型检查等,内联函数会进行参数类型检查。

3.内联函数适用于一个简单逻辑的函数重复调用。而宏适用于实现多步操作的封装。

 

posted on 2020-09-07 11:51  cycit  阅读(186)  评论(0)    收藏  举报

导航