当前位置: 首页 > news >正文

C++030(内联函数)

内联函数

通过inline关键字可以把函数定义为内联函数,编译器会在每个调用该函数的地方展开一个函数的副本。

例如,创建一个内联函数IntegerAdd并进行调用,代码如下:

#include <iostream>
using namespace std;
inline int IntegerAdd(int x,int y) ;
int main()
{int a;int b;int iresult=IntegerAdd(a,b);
}
inline int IntegerAdd(int x, int y)
{return x+y;
}

IntegerAdd函数被定义为内联函数,其在计算机中的执行过程如下:

int main()
{int a;int b;int iresult=a+b;
}
  1. 使用内联函数可以减少函数调用带来的开销(即程序文件中移动指针寻找调用函数地址带来的开销),但它只是一种解决方案,编译器可以忽略内联的声明。
  2. 建议在函数实现代码很简短或者调用该函数次数相对较少的情况下将函数定义为内联函数,内联函数通常定义一条返回语句,不能包含循环或者switch语句。
  3. 例如,一个递归函数不能在调用时完全展开,一个1000行代码的函数也不可能在调用时展开,内联函数只能在优化程序时使用。
  4. 在抽象数据类设计中,它对支持信息隐藏起主要作用。
  5. 如果某个内联函数要作为外部全局函数,即它将被多个源代码文件使用,那么就把它定义在头文件里,在每个调用该内联函数的源文件中包含该头文件,这种方法保证对每个内联函数只有一个定义,以防止在程序的生命期中引起无意的不匹配。

相关文章:

  • Vision Pro发布!开发者如何快速上手空间UI设计?
  • 深入理解计算机科学中的“递归”:原理、应用与优化
  • 我的世界模组开发——方块的深入探索(1)
  • 【深度学习-pytorch篇】5. 卷积神经网络与LLaMA分类模型
  • qemu安装risc-V 64
  • WPF的基础设施:XAML基础语法
  • 利用仿真软件学习一下RC无源滤波和有源滤波电路
  • 第二节 LED模块
  • 电脑革命家测试版:硬件检测,6MB 轻量无广告 清理垃圾 + 禁用系统更新
  • Nacos注册中心原理
  • 算法-背包问题
  • 交换机环路故障分析以及解决方案
  • CAD背景怎么改成黑色?
  • web第七次课后作业--springbootWeb响应
  • 大型软件系统日志记录最佳实践
  • 153. 寻找旋转排序数组中的最小值
  • 手写字魔法消除3:深度学习PmrNet神经网络实现图片修复(含训练代码、数据集和GUI交互界面)
  • 零基础设计模式——结构型模式 - 外观模式
  • Docker 环境搭建与三大数据库(MySQL/Redis/MongoDB)部署教程
  • [Hackers and Painters] 读书笔记 | 设计模式思想 | LISP
  • 专做网游视频的网站/机器人编程培训机构排名
  • 辽宁东方建设工程有限公司网站/网络服务器是指什么
  • 网站交互用什么做/东莞网站建设工作
  • 黄页88网站关键词怎么做/公众号如何推广
  • 某学校网站建设方案/网络推广是做什么工作
  • 微信微网站建设平台/连云港seo优化