文档章节

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

黄美川
 黄美川
发布于 2016/01/26 17:01
字数 483
阅读 26
收藏 0

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

4.7   内置函数

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

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


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

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


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


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

        

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


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

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


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

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


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

© 著作权归作者所有

共有 人打赏支持
黄美川
粉丝 2
博文 27
码字总数 19754
作品 0
杭州
程序员
c语言基础学习11_项目实战:IDE(集成开发环境)

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

黑泽明军
01/29
0
0
C语言编程学习程序解析:控制语句之学习前言

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

小辰带你看世界
05/27
0
0
C语言/C++程序员编程基础学习代码训练

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

小辰带你看世界
03/27
0
0
C语言程序员编程学习文件操作与JSON

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

小辰带你看世界
03/15
0
0
C语言/C++编程学习异常处理:如何处理c++中的异常

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

小辰带你看世界
05/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSX | SafariBookmarksSyncAgent意外退出解决方法

1. 启动系统, 按住⌘-R不松手2. 在实用工具(Utilities)下打开终端,输入csrutil disable, 然后回车; 你就看到提示系统完整性保护(SIP: System Integrity Protection)已禁用3. 输入reboot回车...

云迹
今天
4
0
面向对象类之间的关系

面向对象类之间的关系:is-a、has-a、use-a is-a关系也叫继承或泛化,比如大雁和鸟类之间的关系就是继承。 has-a关系称为关联关系,例如企鹅在气候寒冷的地方生活,“企鹅”和“气候”就是关...

gackey
今天
4
0
读书(附电子书)|小狗钱钱之白色的拉布拉多

关注公众号,在公众号中回复“小狗钱钱”可免费获得电子书。 一、背景 之前写了一篇文章 《小狗钱钱》 理财小白应该读的一本书,那时候我才看那本书,现在看了一大半了,发现这本书确实不错,...

tiankonguse
今天
4
0
Permissions 0777 for ‘***’ are too open

异常显示: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: UNPROTECTED PRIVATE KEY FILE! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ......

李玉长
今天
5
0
区块链10年了,还未落地,它失败了吗?

导读 几乎每个人,甚至是对通证持怀疑态度的人,都对区块链的技术有积极的看法,因为它有可能改变世界。然而,区块链技术问世已经10年了,我们仍然没有真正的用上区块链技术。 几乎每个人,甚...

问题终结者
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部