zoukankan      html  css  js  c++  java
  • C++____内联函数

    内联函数

    宏函数的缺陷:

    必须要加括号保证运算完整

    即使加括号,有些运算依然与预期结果不符

    预定义宏函数没有作用域概念,无法作为一个类的成员函数,也就是说预定义宏没有办法表示类的范围。

    内联函数基本概念

    在C++中,用内联函数来实现宏函数的处理方式。但是内联函数本身也是一个真正的函数。内联函数具有普通函数的所有行为,区别在于内联函数会在合适的地方进行类似宏函数的进行展开。

    普通函数定义内联函数

    在普通函数前面添加inline关键字变成内联函数,但是必须把函数体和申明放在一起

    inline void func(int a);//这样是错误的

    inline void func(int a)
    {
    return a++;
    }//把申明和实现放在一起才行

    类中的内联函数

    任何在类中定义的函数都是默认为一个内联函数

    内联函数和编译器

    内联函数如果太庞大了就不会有效了,所以编译器需要来处理。

    所以在一些特殊情况下,写了关键字inline也不会按照内联函数的方式来处理:

    循环

    判断

    函数体过于庞大

    对函数进行取地址

    总结:

    内联函数只是给编译器一个建议,但是编译器不一定接受这个建议,好的编译器会自己给短小的函数前加上关键字inline

  • 相关阅读:
    第13章 使用ADO.NET访问数据库
    第11章 连接查询和分组查询
    第10章 模糊查询和聚合函数
    第9章 数据查询基础
    数据库前三章测试题
    用表组织数据
    程序数据集散地:数据库
    深入C#的String类
    线程池
    hadoop-2.8.0 完全分布式运行模式
  • 原文地址:https://www.cnblogs.com/beautiful7/p/14197626.html
Copyright © 2011-2022 走看看