C++内联函数

    科技2026-04-18  1

    c++内联函数

    C++中支持内联函数,其目的是为了提高函数的执行效率,用关键字 inline 放在函数定义(注意是定义而非声明,下文继续讲到)的前面即可将函数指定为内联函数,内联函数通常就是将它在程序中的每个调用点上“内联地”展开无论是《Effective C++》中的 “Prefer consts,enums,and inlines to #defines” 条款,还是《高质量程序设计指南——C++/C语言》中的“用函数内联取代宏”,宏在C++中基本是被废了

    在学习c++内联函数的过程中, 编写了如下三个文件: 头文件Test.h (类的声明)

    #ifndef _TEST_H_ #define _TEST_H_ #include<iostream> using namespace std; class Test { public: int Add(int a,int b) }; #endif //_TEST_H_

    Test.cpp (类的定义)

    #include"Test.h" #include<iostream> using namespace std; inline int Test::Add(int a,int b) { cout<<"a+b="<<a+b<<endl; }

    测试

    #include"Test.h" #include<iostream> int main () { Test c; c.Add(4,5); }

    Tip: 只有当函数只有 10 行甚至更少时才将其定义为内联函数.

    定义: 当函数被声明为内联函数之后, 编译器会将其内联展开, 而不是按通常的函数调用机制进行调用.优点: 当函数体比较小的时候, 内联该函数可以令目标代码更加高效. 对于存取函数以及其它函数体比较短, 性能关键的函数, 鼓励使用内联.缺点: 滥用内联将导致程序变慢. 内联可能使目标代码量或增或减, 这取决于内联函数的大小. 内联非常短小的存取函数通常会减少代码大小, 但内联一个相当大的函数将戏剧性的增加代码大小. 现代处理器由于更好的利用了指令缓存, 小巧的代码往往执行更快。结论: 一个较为合理的经验准则是, 不要内联超过 10 行的函数. 谨慎对待析构函数, 析构函数往往比其表面看起来要更长, 因为有隐含的成员和基类析构函数被调用
    Processed: 0.014, SQL: 9