• 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语言 > 浅谈VC++中的内联

浅谈VC++中的内联

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

通过本文主要向大家介绍了vc++中,vc++中 是什么意思,vc++6.0官方下载,vc++,vc++辅助等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

内联的语法

在类声明中定义方法;
内联方法放在类声明之外,但必须出现在头文件中,且内联方法声明中使用inline标识;
注:inline只是对编译器的建议,是否内联的决定权在编译器;

内联节省的开销

函数调用开销
调用间优化 优秀的编译器可是内联方法的边界难以区分(将代码内联后,对代码进行重新排列)

内联带来的问题

代码膨胀(空间开销)
由于代码膨胀带来的页面缓存命中率下降
编译时间增加
修改文件后相关文件都需要重新编译;
由于函数边界模糊,该内联函数遇到问题后不好排查;

内联函数的建议

优化时,只针对高频代码内联;
对于调用频率高的(80%以上场景都会走到的路径):
函数规模<5行:总是内联;
5-20行,将高频率的调用点选择性内联;
超过20行,重写方法,体现出快速路径并将其内联;

内联的技巧

将内联工作放到开发周期后期
使用条件内联,通过宏和编译选项的技巧控制在开发初期不内联,而到开发后期再加上自定义内联选项进行内联;
SPARC体系结构中的内联

SPARC中有充足的寄存器,在限定的调用深度范围内几乎没有调用返回的性能损失(无须在调用时存储就的寄存器内容),所有,这种体系结构的内联效果甚微,一般不用考虑内联;

以上所述就是本文的全部内容了,希望大家能够喜欢。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

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

  • 浅谈VC++中的内联
  • VC++中内存对齐实例教程
  • VC++中HTControl控制类使用之CHTDlgBase对话框基类实例

相关文章

  • 2017-05-28VC++中内存对齐实例教程
  • 2017-05-28C语言堆栈入门指南
  • 2017-05-28基于errno返回值的对应错误码的详细介绍
  • 2017-05-28Mac下使用Eclipse编译C/C++文件出现 launch failed, binary not found 解决方案
  • 2017-05-28解析内存对齐 Data alignment: Straighten up and fly right的详解
  • 2017-05-28C++中字符串查找操作的两则实例分享
  • 2017-05-28VC小技巧汇总之5则实用小技巧
  • 2017-05-28VC6.0常见链接错误与解决方法
  • 2017-05-28详解C++中常量的类型与定义
  • 2017-05-28提高C++程序运行效率的10个简单方法

文章分类

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

最近更新的内容

    • libevent库的使用--定时器的使用实例
    • C++构造函数和析构函数的调用顺序
    • C语言中的函数指针基础学习教程
    • 基于list循环删除元素,迭代器失效的问题详解
    • 详解C++编程中的虚函数
    • C++常用的#include头文件总结
    • NKOJ3843 2357数
    • c语言socket多线程编程限制客户端连接数
    • pthread_cond_wait() 用法深入分析
    • linux内核select/poll,epoll实现与区别

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

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