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

【嵌入式必知】内联函数(inline)和宏定义(#defne)

一、 什么是内联函数

内联函数是 C/C++ 中的一种函数修饰符,通过在函数返回类型前加上inline关键字来指定。它的核心思想是“以空间换时间”:在编译阶段,编译器会尝试将内联函数的代码直接嵌入(展开)到每一个调用它的地方,从而省去了函数调用时的压栈、跳转和返回等开销,提高程序的执行效率。

inline int add(int a, int b) { return a + b; }

二、什么是宏定义

宏定义是 C/C++ 中的预处理指令,通过#define来实现。它在编译前的预处理阶段执行,仅仅进行纯粹的文本替换,不涉及语法分析或类型检查。宏定义分为无参宏(常用于定义常量)和带参宏(形式上类似函数,用于替换表达式)。

#define ADD(a, b) ((a) + (b))

三、内联函数和宏定义区别

对比项

内联函数(inline)

宏定义(#define)

处理阶段

编译阶段

预处理阶段

类型检查

✅ 有

❌ 无

参数求值

只求值一次

可能多次求值

调试

✅ 可调试

❌ 不可调试

副作用风险

作用域

遵循语言作用域

全局生效

是否生成函数符号

不一定

四、inlinestatic inline的区别

(1)inline

inline int add(int a, int b) { return a + b; }

特点:

项目

说明

是否有函数本体

❌ 不强制

是否允许多次定义

✅ 允许(ODR-like)

外部可见性

✅ 可能被外部引用

常见错误

multiple definition(重复定义)

(2)static inline

static inline int add(int a, int b) { return a + b; }

特点:

项目

说明

是否有函数本体

✅ 每个翻译单元都有

是否允许多次定义

✅ 允许

外部可见性

❌ 仅当前文件可见

(3) 综合对比

特性

inline

static inline

链接属性

外部链接

内部链接

是否适合放头文件

❌ 不推荐

✅ 推荐

重复定义风险

代码膨胀风险

稍高

使用频率

极高

http://www.gsyq.cn/news/1494683.html

相关文章:

  • 专业数据可视化工具实战指南:3步创建交互式图表
  • 终极无损视频修复指南:5分钟学会使用untrunc拯救损坏的MP4文件
  • 嵌入式低功耗设计实战:从Kinetis K26电气特性到功耗优化策略
  • 告别Verilog代码乱糟糟:在Windows上用VSCODE一键美化格式的完整流程
  • 更便捷地提取梅露露的炼金工房资源
  • 别再只盯着CPU了!用Node Exporter监控Linux服务器,这5个内存和磁盘IO的指标更关键
  • CICERO双引擎架构:语言模型与规划器协同的AI谈判系统
  • ARM Cortex-M4引脚复用实战:从K60配置到嵌入式系统设计
  • 小程序毕设选题推荐:基于springboot+微信小程序的演唱会售票演唱会购票系统小程序【附源码、mysql、文档、调试+代码讲解+全bao等】
  • 麻将AI助手Akagi:实时分析雀魂对局的终极指南
  • 完整步骤:Ubuntu 内网 192.168.0.111 → Cloudflare 二级域名(CLI 方式)
  • i.MX 6处理器电气特性实战:从手册参数到稳定硬件设计
  • 小程序毕设选题推荐:【附源码、mysql、文档、调试+代码讲解+全bao等】
  • 计算机小程序毕设实战-微信小程序校园反诈骗基于Springboot的防诈骗管理系统小程序【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • DayZ社区离线模式完整教程:打造专属末日沙盒的终极指南
  • 终极华硕笔记本性能调校指南:5分钟掌握G-Helper完整使用教程 [特殊字符]
  • BiliBili-UWP:Windows平台原生化B站体验终极指南
  • Simulink跑完仿真别关!5分钟教你用MATLAB脚本批量处理多组波形并自动保存高清图
  • 如何永久保存微信聊天记录:WeChatMsg完整备份方案
  • abap2xlsx架构解析:ABAP Excel生成库深度指南与最佳实践
  • 2026年高考语文作文 | AI挑战满分
  • Kinetis K53 LCD驱动:电气参数与引脚复用配置实战指南
  • 神奇重生术:3天让“过时“MacBook Pro焕发新生的真实记录
  • 巧用 AI 工具高效制作学术答辩 PPT,全套答辩资料一站式配齐
  • 网络性能诊断实战:iperf3 Windows版深度应用指南
  • 苹果 iOS 27 发布:应用启动提 30%、老机型性能优化,秋季正式推送!
  • LeetDown终极指南:如何在macOS上为A6/A7设备降级iOS系统
  • 流放之路离线Build规划神器:Path of Building终极使用指南
  • 深度解锁AMD Ryzen性能:揭秘硬件级调优的终极实战指南
  • 告别昂贵门槛,BeeWorks低成本赋能中小微企业IM私有化