第八章 函数探幽(1)c++内联函数

    c++赋予了一些新的关于函数的特性,包括,内联函数,按引用传递变量默认的参数值函数重载(多态),以及模板函数

(一)c++内联函数

1.什么是内联函数

    内联函数是为了提高程序的运行速度而进行的一项改进,内联函数是在编译阶段就把代码复制到调用他的位置,而不是跟其他普通函数那样,在运行的时候跳到函数的地址处运行,因此可以削减掉调用函数传递地址保存地址等的时间。内联函数执行起来比其它的普通函数稍快,但是要占用更多的内存。一般用于代码较短,并且多次调用,而且执行时间比调用时间要短得多的场合(比如for循环中的比较简单的函数)。

2.内联函数的使用方法

    在函数声明前加上关键字inline;函数定义前加上关键字inline;通常的做法是在声明的时候同时将定义加上去,并且只写在一行内(如果一行写不下,那么一般情况下就说明这个函数作为内联函数不太合适)。需要注意的是,内联函数不能递归调用内联函数和常规函数一样,也是按值传递参数的,它的原始实现方式是宏,但宏不能实现按值传递函数,这在很多时候会出现问题,因此用c的宏定义的函数应尽量转换为c++的内联函数实现。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 内联的疑惑 写这篇文章的初衷源自于对netdata项目把C函数声明为static inline的用法不解。从语言特...
    typesafe阅读 6,718评论 1 1
  • 几种语言的特性 汇编程序:将汇编语言源程序翻译成目标程序编译程序:将高级语言源程序翻译成目标程序解释程序:将高级语...
    囊萤映雪的萤阅读 8,060评论 1 5
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,887评论 1 32
  • 前言 将程序分成适当的自包含单元是开发任意程序的基本方式。在开发时,应该将其分成多个便于管理的部分,这样带来的好处...
    seraphzxz阅读 5,259评论 0 48
  • C++知识50问1、C和C++的区别?C++相对于C的优势。答:C是C++的基础,C++是C的超集。C是一个结构化...
    萌面大叔2阅读 3,647评论 0 26

友情链接更多精彩内容