当前位置: 首页 > 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. 如果某个内联函数要作为外部全局函数,即它将被多个源代码文件使用,那么就把它定义在头文件里,在每个调用该内联函数的源文件中包含该头文件,这种方法保证对每个内联函数只有一个定义,以防止在程序的生命期中引起无意的不匹配。
http://www.xdnf.cn/news/703045.html

相关文章:

  • Δ-Σ ADC的工作原理
  • 2025东北CCPC(部分+详解)
  • Java从入门到精通 - 面向对象编程基础
  • 将can日志数据提取到excle中
  • HOMIE——遥操类似ALOHA主从臂的外骨骼驾驶舱收集数据:通过上肢模仿学习和全身控制RL训练自主策略
  • JVM虚拟机监控及性能调优实战!
  • mqtt c语言publish topic
  • 6 质量控制中的常用缩略语和符号(OEE)以及解释
  • 嵌入式学习之系统编程(七)线程的控制(互斥与同步)和死锁
  • CPG开源项目对比
  • 18度的井水
  • C++补充基础小知识:为什么要继承、什么时候继承、什么时候直接用
  • 高并发计数器LongAdder 实现原理与使用场景详解
  • Jmeter性能测试(应用场景、性能测试流程、搭建测试环境)
  • 实例与选项对象
  • SpringBoot+Vue+Echarts实现可视化图表的渲染
  • 自动生成程序的heap文件
  • #!/usr/bin/env python
  • JS中的属性描述符
  • Day 20
  • 生成式引擎在不同行业的应用案例
  • 第十章 Java基础-Static静态变量
  • 基于物理约束的稀疏IMU运动捕捉系统
  • spring和Mybatis的各种查询
  • Rust 学习笔记:使用迭代器改进 minigrep
  • 力扣刷题Day 61:子集(78)
  • 【案例94】笛卡尔积导致报“临时表空间不足”
  • bat 批处理通过拖拽,来获取拖入文件的信息
  • 【25-cv-00656】Whitewood律所代理Olga Drozdova 蝴蝶版权图维权案
  • 【Web应用】若依框架:基础篇07功能详解-定时任务