文档章节

C++学习 【4.3】 利用函数实现指定的功能---内置函数

西镜os
 西镜os
发布于 2016/01/26 17:01
字数 483
阅读 28
收藏 0

学习《C++程序设计》(第二版)  谭浩强  主编   第四章 关于函数的调用

4.7   内置函数

        调用函数时需要一定的时间和空间的开销,进行保护现场和恢复现场等操作。

        这些都要花费一定的时间,如果有的函数需要频繁使用,则所用时间会很长,从而降低了程序的执行效率。


        C++提供了一种提交效率的方法,即在编译时将所调用函数的代码直接嵌入到主调函数中,而不是将流程转出去。

        这种嵌入到主调函数中的函数称为内置函数(inline function),又称为内嵌函数,内联函数。


        指定内置函数的方法很简单,只需在函数首行的左端加一个关键字inline即可。


        由于在定义函数时指定为内置函数,故编译系统在遇到函数调用时,就用函数体的代码代替,同时将实参替代形参。

        

        可以在声明函数和定义函数时同时写inline,也可以只在函数声明时加inline,而定义函数时不加inline。


        使用内置函数可以节省运行时间,但却增加了目标程序的长度。

        内置函数中不能包括复杂的控制语句,如循环语句和switch语句。


        说明:对函数作inline声明,只是程序设计者对编译系统提出的一个建议,而不是命令性的。

                  编译系统会根据具体情况决定是否这样做。


        总结:只有那些规模较小而又频繁调用的简单函数,才适用于声明为inline函数。

© 著作权归作者所有

共有 人打赏支持
西镜os
粉丝 2
博文 41
码字总数 47413
作品 0
杭州
程序员
私信 提问
c语言基础学习11_项目实战:IDE(集成开发环境)

============================================================================= ============================================================================= 涉及到的知识点有: 一......

黑泽明军
01/29
0
0
C语言程序员编程学习文件操作与JSON

C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到...

小辰带你看世界
03/15
0
0
泛型编程与设计新思维

作者: 徐景周 转帖: http://www.vckbase.com/document/viewdoc/?id=955 前言 永远记住,编写代码的宗旨在于简单明了,不要使用语言中的冷僻特性,耍小聪明,重要的是编写你理解的代码,理解...

ValueError
2011/01/12
339
1
关于Nebula3工程的几个编译选项

研究一下人家是怎么通过编译选项来优化性能的 DEBUG: C++/Code Generation/Enable String Pooling: Yes (/GF) 该选项使编译器能够为执行过程中程序映像和内存中的相同字符串创建单个副本,从...

长平狐
2012/11/12
79
0
不可小看的技术——C语言编程中的“宏”

C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到...

小辰带你看世界
03/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

EOS官方钱包keosd

EOS官方钱包的名称是keosd,它负责管理你的私钥,并且帮你进行交易的签名。 不过不幸的是,keosd钱包对普通用户并不友好,它是一个命令行程序,目前还没有像以太坊的mist那样的图形化界面,而...

汇智网教程
23分钟前
1
0
ArrayList的实现原理以及实现线程安全

一、ArrayList概述 ArrayList是基于数组实现的,是一个动态的数字,可以自动扩容。 ArrayList不是线程安全的,效率比较高,只能用于单线程的环境中,在多线程环境中可以使用Collections.syn...

一看就喷亏的小猿
40分钟前
2
0
Netty 备录 (一)

入职新公司不久,修修补补1个月的bug,来了点实战性的技术---基于netty即时通信 还好之前对socket有所使用及了解,入手netty应该不是很难吧,好吧,的确有点难,刚看这玩意的时候,可能都不知道哪里...

_大侠__
昨天
4
0
Django简单介绍和用户访问流程

Python下有许多款不同的 Web 框架。Django是重量级选手中最有代表性的一位。许多成功的网站和APP都基于Django。 Django是一个开放源代码的Web应用框架,由Python写成。 Django遵守BSD版权,初...

枫叶云
昨天
8
0
Spring Cloud Stream消费失败后的处理策略(四):重新入队(RabbitMQ)

应用场景 之前我们已经通过《Spring Cloud Stream消费失败后的处理策略(一):自动重试》一文介绍了Spring Cloud Stream默认的消息重试功能。本文将介绍RabbitMQ的binder提供的另外一种重试...

程序猿DD
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部