`
swincle
  • 浏览: 79201 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Inline Functions

    博客分类:
  • C++
 
阅读更多

如果频繁地调用很少语句的小函数,这些开销对性能的影响不好说。所以需要Inline Functions(内联函数),例如:

#include<iostream>

using namespace std;

inline bool isNumber(char);  //Inline Functions

int main() {
    char c;
    while(cin >> c && c != '\n') {
        if(isNumber(c))
            cout << "you entered a digit.\n";
        else
            cout << "you entered a non-digit.\n";
    }
}

bool isNumber(char ch) {
    return ch >= '0' && ch <= '9';
}

 

内联函数使用的场合一般为:

(1)函数体适当小,这样就使嵌入工作容易进行,不会破坏原调用主体。一般适用于只有1~5行的小函数,且不能含有复杂的结构控制语句,如switch和while。

(2)程序中特别是在循环中反复执行该函数,这样就使嵌入的效率相对较高。例如上述例子中在循环里调用函数会影响性能,而用内联函数会提高性能。

(3)程序并不多处出现该函数调用,这样就使嵌入工作量相对较少,代码量也不会剧增。

分享到:
评论

相关推荐

    Google C++ Style Guide(Google C++编程规范)高清PDF

    Header Files The #define Guard Header File Dependencies Inline Functions The -inl.h Files Function Parameter Ordering Names and Order of Includes Scoping Namespaces Nested Classes Nonmember, Static ...

    Think in C++ 英文版(含卷一、卷二)

    9: Inline Functions 10: Name Control 11: References & the Copy-Constructor 12: Operator Overloading 13: Dynamic Object Creation 14: Inheritance & Composition 15: Polymorphism & Virtual Functions 16: ...

    C 程序设计教学课件:CHAPTER 4 FUNCTIONS.ppt

    接下来,我们讨论内联函数(Inline Functions)。内联函数是一种优化技术,用于减少函数调用带来的开销。通过使用`inline`关键字,编译器尝试将函数体插入到每个调用它的位置,而不是进行传统的函数调用。然而,...

    C++程序设计教学课件:CHAPTER 4 FUNCTIONS

    此外,本章还将涉及一些高级主题,如内联函数(`inline functions`),默认参数(`default arguments`)和函数重载(`function overloading`)。内联函数是一种优化技术,用于减少函数调用时的开销,通过在编译时...

    C程序设计教学课件:CHAPTER4FUNCTIONS.pptx

    接下来的章节4.2讨论了内联函数(Inline Functions),这是一种优化技术,用于减少函数调用时的开销。4.3讲述了默认参数(Default Arguments),允许函数在未提供某些参数时使用预设的值。4.4则涉及函数重载...

    Prentice.Hall.C++.for.Business.Programming.2nd.Edition.2005.chm

    Special Topics: Friends, Operator Overloading, Macros, and Inline Functions 730 Section 15.1. friend Functions 731 Section 15.2. Overloading Basic Arithmetic Operators 738 Section 15.3. ...

    Google C++ Style Guide_英文版.pdf

    - **Inline Functions:** Inline functions can be defined in header files if they are small enough. This can help avoid multiple definition errors. #### Scoping - **Namespaces:** Namespaces are used to...

    深度探索C++对象模型 超清版

    4.5 Inline Functions 形式对数(Formal Arguments) 局部变量(Local Variables) 第5章 构造、解构、拷贝 语意学(Semantics of Construction,Destruction,and Copy) 纯虚拟函数的存在(Presence of a Pure ...

    C 程序设计教学课件:Chapter One From C to C .ppt

    2.1 Function Introduction介绍了函数的基本概念,2.2 Storage Allocation讨论了内存分配,2.3 inline Functions解释了内联函数的使用,目的是减少函数调用的开销。2.4 Default Arguments允许函数参数有默认值,当...

    C++程序设计基础教程 苏大C++程序设计教程(第二版) 第5-6-7章 函数 程序结构(共7页).pptx

    3. **内联函数(Inline Functions)**: - 内联函数是一种优化手段,用于替代小型函数调用的过程,减少函数调用带来的开销。通过在函数声明前加上`inline`关键字,可以请求编译器进行内联展开。不过,这并不保证...

    【Matlab 参考教程】第八章 M文件和面向对象编程.doc

    - **内联函数(Inline Functions)**:可以像普通函数一样调用,但编译为更高效的代码。 - **子函数(Subfunctions)**:在同一M文件中定义的辅助函数,不直接暴露给用户。 - **私用函数(Private Functions)**...

    Practical C++ Programming C++编程实践

    Inline Functions Versus Normal Functions Case Study: Optimizing a Color-Rendering Algorithm Programming Exercises Answers to Chapter Questions 18. Operator Overloading Creating a Simple Fixed-Point ...

    《深度探索C++对象模型》(Stanley B·Lippman[美] 著,侯捷 译)

    4.5 Inline Functions 形式对数(Formal Arguments) 局部变量(Local Variables) 第5章 构造、解构、拷贝 语意学(Semantics of Construction,Destruction,andCopy) 纯虚拟函数的存在(Presence of a Pure ...

    DragController.rar_interface

    2. **内联函数(Inline Functions)**:为了提高效率,某些简单的成员函数可能会被定义为内联。 3. **静态变量和静态函数(Static Variables and Functions)**:如果`DragController`类有静态成员,它们的定义和...

    In-class talk-蔡振廷_6676023011

    - 内联函数(Inline Functions):仅当函数较小,如10行以内时,才应定义为内联。这可以通过让编译器选择是否进行内联展开,而不是通过常规的函数调用机制来实现。内联可以生成更高效的机器代码,但如果过度使用,...

    C程序设计教程601538PPT课件.pptx

    在C程序设计中,内联函数(Inline Functions)是一种优化技术,旨在提高程序的执行效率。内联函数的原理是将函数体直接插入到每个调用它的位置,从而避免了函数调用时的开销,比如函数调用的压栈、跳转以及返回等...

    GNU scientific library reference manual version 1.14 2010

    - **2.5 Inline functions**:介绍 GSL 中内联函数的使用方法。 - **2.6 Long double**:阐述 GSL 对 long double 类型的支持。 - **2.7 Portability functions**:说明 GSL 提供的跨平台功能。 - **2.8 ...

    使用gcc和glibc来优化程序 转载 (2).docx

    除了上述方法,还有其他优化技术,比如使用内联函数(inline functions)来消除函数调用开销,以及在可能的情况下使用静态变量(static variables)来保持局部状态,避免每次函数调用时的重新初始化。此外,编译器还...

    改善程序设计技术的个有效做法PPT优秀资料.ppt

    - 内联函数(inline functions)比宏更安全,因为它们可以进行类型检查和避免副作用。 2. **采用而非** - C++的`iostream`库提供了更灵活和强大的输入输出机制,支持自定义类型的输入输出操作,而且与C++对象模型...

Global site tag (gtag.js) - Google Analytics