• 转-C++内联函数与宏定义区别


    主要区别:

    1、内联函数在编译时展开,而宏在预编译时展开。

    2、在编译的时候,内联函数直接被嵌入到目标代码中去,而宏只是一个简单的文本替换。

    3、内联函数可以进行诸如类型安全检查、语句是否正确等编译功能,宏不具有这样的功能。

    4、宏不是函数,而inline是函数

    5、宏在定义时要小心处理宏参数,一般用括号括起来,否则容易出现二义性。而内联函数不会出现二义性。

     

     

    C++ inline函数:inline函数一般用于比较小的,频繁调用的函数,这样可以减少函数调用带来的开销。只需要在函数返回类型前加上关键字inline,即可将函数指定为inline函数。 

    inline有点类似于宏定义,但是它和宏定义不同的是,宏定义只是简单的文本替换,是在预编译阶段进行的。而inline的引入正是为了取消这种复杂的宏定义的。

    同其它函数不同的是,最好将inline函数定义在头文件,而不仅仅是声明,因为编译器在处理inline函数时,需要在调用点内联展开该函数,所以仅需要函数声明是不够的。

    例如:

      1 #include <iostream>
      2
      3 using namespace std;
      4
      5 inline int add(int a, int b)
      6 {
      7         return (a + b);
      8 }
      9
     10 int main(void)
     11 {
     12         cout << add(1, 2) << endl;
     13
     14         return 0;
     15 }


    以上12行处在编译时将被展开为:
    cout << (a + b) << endl;

    参考:

    https://blog.csdn.net/u013321328/article/details/19838145

    内联函数与宏的区别   分析得较为详细

  • 相关阅读:
    HTML5学习总结-番外05 http 状态码
    Python开发技巧
    QPushButton class
    Qt class
    QTableWidgetItem class
    毕业设计进度10
    毕业设计进度9
    毕业设计进度8
    毕业设计进度7
    毕业设计进度6
  • 原文地址:https://www.cnblogs.com/Tang-tangt/p/9879606.html
Copyright © 2020-2023  润新知