网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > C/C++
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.采用c/c++编程实现盗取2005 Beta.
.确定一个应用程序是否没有响应.
.一个简单易懂的时钟程序.
.在C语言中如何处理时间和日期.
.Visual C++6.0 API函数操作技巧集.
.利用VC++编程实现程序自动启动.
.websphere新建C/C++客户机.
.入门教程:实例详解C++友元.
.Access数据库规格C++.
.gdb基本用法.
.永远的C++,永远的追求.
.谈跨平台C++动态连接库的实现.
.More Effective C++:通过引用捕.
.Bresenham高效画线算法.
.C++箴言:了解C++偷偷加上和调用了.
.深度探索C++对象模型(10).
.又一个弹球游戏.
.Linux上搭建C/C++IDE.
.教你理解复杂的C/C++声明.
.C语言程序开发经典实例之四.

C++ 内联函数

发表日期:2008-3-8



  引入内联函数的目的是为了解决程序中函数调用的效率问题。

  函数是一种更高级的抽象。它的引入使得编程者只关心函数的功能和使用方法,而不必关心函数功能的具体实现;函数的引入可以减少程序的目标代码,实现程序代码和数据的共享。但是,函数调用也会带来降低效率的问题,因为调用函数实际上将程序执行顺序转移到函数所存放在内存中某个地址,将函数的程序内容执行完后,再返回到转去执行该函数前的地方。这种转移操作要求在转去前要保护现场并记忆执行的地址,转回后先要恢复现场,并按原来保存地址继续执行。因此,函数调用要有一定的时间和空间方面的开销,于是将影响其效率。非凡是对于一些函数体代码不是很大,但又频繁地被调用的函数来讲,解决其效率问题更为重要。引入内联函数实际上就是为了解决这一问题。

  在程序编译时,编译器将程序中出现的内联函数的调用表达式用内联函数的函数体来进行替换。显然,这种做法不会产生转去转回的问题,但是由于在编译时将函数休中的代码被替代到程序中,因此会增加目标程序代码量,进而增加空间开销,而在时间代销上不象函数调用时那么大,可见它是以目标代码的增加为代价来换取时间的节省。

  内联函数的定义方法

  定义内联函数的方法很简单,只要在函数定义的头前加上要害字inline即可。内联函数的定义方法与一般函数一样。如:

inline int add_int (int x, int y, int z)
{

return x+y+z;
}


  在程序中,调用其函数时,该函数在编译时被替代,而不是像一般函数那样是在运行时被调用。

  使用内联函数应注重的事项

  内联函数具有一般函数的特性,它与一般函数所不同之处公在于函数调用的处理。一般函数进行调用时,要将程序执行权转到被调用函数中,然后再返回到调用它的函数中;而内联函数在调用时,是将调用表达式用内联函数体来替换。在使用内联函数时,应注重如下几点:

  1.在内联函数内不答应用循环语句和开关语句。

  2.内联函数的定义必须出现在内联函数第一次被调用之前。

  3.本栏目讲到的类结构中所有在类说明内部定义的函数是内联函数。
上一篇:C++常类型(const) 人气:519
下一篇:C语言程序设计基础之预处理 人气:420
浏览全部C/C++的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐