码迷,mamicode.com
首页 > 编程语言 > 详细

C++ 内联函数

时间:2015-04-03 09:10:08      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:

内联函数从源码层看,有函数的结构,而在编译后,却不具备函数的性质。
内联函数不是在调用时发生控制转移,而是在编译时将函数体嵌入在每一个调用处。
编译时,类似宏替换,使用函数体替换调用处的函数名。
一般在代码中用inline修饰,但是能否形成内联函数,需要看编译器对该函数定义的具体处理。


应注意如下几点: 
1、内联函数可减少cpu的系统开销,并且程序的整体速度将加快,但当内联函数很大时,会有相反的作用,

    因此一般比较小的函数才使用内联函数。


2、有两种内联函数的声明方法,一种是在函数前使用inline关见字,另一种是在类的内部定义函数的代码,

     这样的函数将自动转换为内联函数,而且没必要将inline放在函数前面。


3、内联是一种对编译器的请求,下面这些情况会阻止编译器服从这项请求:函数中包含有循环,switch或

    goto语句,递归函数,含有static的函数。

内联函数的定义:
inline 应当是用于函数声明(Declaration)而非函数实现(Implementation)。但由于不同的编译器下inline

关键字所修饰函数的调用范围不一致,因此,一种简单的作法是,将inline函数的声明和实现合一。如果确定函

数仅应用于同一文件,我们可以将函数的声明和实现都放在.c/.cpp中;否则将其放入.h中(这样,包含了此头

文件的任何文件都可以使用它)。

C++ 内联函数

标签:

原文地址:http://www.cnblogs.com/aqing1987/p/4389076.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!