• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > 深入C++中inline关键字的使用

深入C++中inline关键字的使用

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c++中inline,c++ inline,c++ inline函数,inline关键字,c inline关键字等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
一、在C&C++中
  一、inline 关键字用来定义一个类的内联函数,引入它的主要原因是用它替代C中表达式形式的宏定义。   
    表达式形式的宏定义一例:   
    #define ExpressionName(Var1,Var2) ((Var1)+(Var2))*((Var1)-(Var2))为什么要取代这种形式呢,且听我道来:   
    1. 首先谈一下在C中使用这种形式宏定义的原因,C语言是一个效率很高的语言,这种宏定义在形式及使用上像一个函数,但它使用预处
理器实现,没有了参数压栈,代码生成 等一系列的操作,因此,效率很高,这是它在C中被使用的一个主要原因。   
    2. 这种宏定义在形式上类似于一个函数,但在使用它时,仅仅只是做预处理器符号表中的简单替换,因此它不能进行参数有效性的检测
,也就不能享受C++编译器严格类型检查的好处,另外它的返回值也不能被强制转换为可转换的合适的类型,这样,它的使用就存在着一系列的
隐患和局限性。   
    3. 在C++中引入了类及类的访问控制,这样,如果一个操作或者说一个表达式涉及到类的保护成员或私有成员,你就不可能使用这种宏定
义来实现(因为无法将this指针放在合适的位置)。   
    4. inline 推出的目的,也正是为了取代这种表达式形式的宏定义,它消除了它的缺点,同时又很好地继承了它的优点。
 
二、为什么inline能很好地取代预定义呢?
  对应于上面的1-3点,阐述如下:   
    1. inline 定义的类的内联函数,函数的代码被放入符号表中,在使用时直接进行替换,(像宏一样展开),没有了调用的开销,效率也
很高。   
    2.  很明显,类的内联函数也是一个真正的函数,编译器在调用一个内联函数时,会首先检查它的参数的类型,保证调用正确。然后进行
一系列的相关检查,就像对待任何一个真正的函数一样。这样就消除了它的隐患和局限性。      
    3. inline 可以作为某个类的成员函数,当然就可以在其中使用所在类的保护成员及私有成员。在何时使用inline函数:首先,你可以使
用inline函数完全取代表达式形式的宏定义。另外要注意,内联函数一般只会用在函数内容非常简单的时候,这是因为,内联函数的代码会在
任何调用它的地方展开,如果函数太复杂,代码膨胀带来的恶果很可能会大于效率的提高带来的益处。内联函数最重要的使用地方是用于类的
存取函数。

三、如何使用类的inline函数:
  简单提一下inline 的使用吧:   
    1.在类中定义这种函数:  
</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C++中inline函数详解
  • Inline Hook(ring3)的简单C++实现方法
  • C++实现inline hook的原理及应用实例
  • c++内联函数(inline)使用详解
  • C++ 关键字 inline详细介绍
  • 深入C++中inline关键字的使用
  • c++中inline的用法分析

相关文章

  • 2017-05-28Microsoft Visual C++ 6.0开发环境搭建教程
  • 2017-05-28用c语言实现2000内既能被3整除又能被7整除的个数
  • 2017-05-28用C++实现单向循环链表的解决方法
  • 2017-05-28C语言实现奇数阶魔方阵的方法
  • 2017-05-28php5系列的apache远程执行漏洞攻击脚本
  • 2017-05-28c++重载的详细总结
  • 2017-05-28详谈signed 关键字
  • 2017-05-28C++友元函数与拷贝构造函数详解
  • 2017-05-28最长公共子字符串的使用分析
  • 2017-05-28实例讲解在C++的函数中变量参数及默认参数的使用

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C++采用openfilename打开文件对话框用法实例
    • C语言枚举类型(C语言enum用法)详解
    • c语言中使用BF-KMP算法实例
    • 解析VC中创建DLL,导出全局变量,函数和类的深入分析
    • C语言之双向链表详解及实例代码
    • 深入理解char *a与char a[]的区别
    • C++ operator关键字(重载操作符)的用法详解
    • 深入分析C++中执行多个exe文件方法的批处理代码介绍
    • VC实现图片拖拽及动画的实例
    • C语言 数据结构之连续存储数组的算法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有