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

内联函数(inline)的内存原理 --- 拓展普通函数和宏的对比

1普通函数调用流程栈的使用假设有一个普通函数void Print() { int x 10; std::cout x; } int main() { Print(); }调用过程CPU 和栈视角调用Print()CPU 执行call Print当前栈帧main 的栈保存返回地址CPU 跳到Print的代码段执行创建Print的栈帧栈顶分配局部变量空间int x 10保存必要的寄存器、返回地址等函数体执行打印 x函数返回弹出栈帧恢复寄存器用栈中保存的返回地址跳回 main✅ 栈的特点每个函数调用都会分配自己的栈帧函数逻辑代码→ 固定在代码段调用时的栈帧→ 为函数的局部变量、返回地址、寄存器开辟临时空间函数执行逻辑在栈上运行结束后释放空间内联函数→ 减少栈帧创建局部变量在调用函数栈帧宏定义→ 文本替换直接在调用点执行也在调用函数栈帧2 内联函数的调用流程假设inline void Print() { int x 10; std::cout x; } int main() { Print(); }调用过程调用点直接展开函数体编译器把函数内容复制到调用点int main() {int x 10;std::cout x;}栈的变化没有新的栈帧分配变量x直接在 main 的栈帧上分配不用压返回地址不用跳转CPU 执行顺序就像你在 main 里直接写了int x 10; std::cout x;✅ 栈的特点没有独立栈帧局部变量在调用函数的栈帧里减少了压栈、跳转、返回的开销3宏定义#define和内联函数的表面相似#define SQUARE(x) ((x)*(x))使用时int a 5;int b SQUARE(a); // 编译器预处理时替换成 ((a)*(a))✅ 表面相似点都在调用处展开没有函数调用开销适合小功能频繁调用也不会压栈4宏定义的本质预处理阶段宏在编译前就被展开预处理器阶段编译器根本没有“看到函数”它只是文本替换b SQUARE(a); // 预处理后b ((a)*(a));内存上根本没有函数体不会有函数调用也没有inline之类的优化问题没有类型检查、可能有副作用总结对比特性普通函数内联函数栈帧独立栈帧不分配独立栈帧局部变量在调用点栈帧里返回地址压栈 ret无需压栈CPU 跳转call → 执行 → ret直接顺序执行展开代码局部变量在函数栈帧在调用函数栈帧这是图片对比外加宏。直接全部搞懂

相关文章:

内联函数(inline)的内存原理 --- 拓展普通函数和宏的对比

1&#xff0c;普通函数调用流程&#xff08;栈的使用&#xff09;假设有一个普通函数&#xff1a;void Print() { int x 10; std::cout << x; }int main() { Print(); }调用过程&#xff08;CPU 和栈视角&#xff09;&#xff1a;调用 Print()CPU 执行 call Print当前栈…...

Bearer Token在现代Web API中的安全实践与优化策略

1. Bearer Token的核心原理与安全基础 Bearer Token本质上是一串随机生成的字符&#xff0c;它就像一把万能钥匙——谁持有它&#xff0c;谁就能打开对应的资源大门。这种设计在OAuth 2.0框架下尤为常见&#xff0c;我见过太多开发者因为对这把"钥匙"的保护不当而引…...

LiuJuan Z-Image Generator应用场景:自媒体团队日更30+张原创配图工作流

LiuJuan Z-Image Generator应用场景&#xff1a;自媒体团队日更30张原创配图工作流 1. 引言&#xff1a;当内容创作遇上效率瓶颈 想象一下&#xff0c;你是一个自媒体团队的负责人。每天&#xff0c;你和你的团队需要为公众号文章、小红书笔记、抖音视频准备配图。这些图片不…...

解锁音乐自由:ncmdumpGUI——Windows平台NCM加密文件一键转换利器

解锁音乐自由&#xff1a;ncmdumpGUI——Windows平台NCM加密文件一键转换利器 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换&#xff0c;Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI ncmdumpGUI是一款专为Windows用户…...

如何高效解决魔兽争霸3兼容性问题:专业玩家的终极指南

如何高效解决魔兽争霸3兼容性问题&#xff1a;专业玩家的终极指南 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为经典游戏魔兽争霸3在Windows …...

浏览器返回键总遭“劫持”,Google重拳出击:6月15日起,将认定为违规!

整理 | 屠敏出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;经常用浏览器的人&#xff0c;大概都踩过这个坑&#xff1a;一不小心点进某个页面&#xff0c;想返回上一页&#xff0c;却发现“后退按钮”突然失灵了。怎么点都回不去&#xff0c;要么只是原地刷新&…...

玩AI要想不伤身,就得加大多巴胺阻。

4月12日&#xff0c;外媒报道&#xff0c;“OpenAI”执行长Sam Altman住处遭袭后续。嫌犯被捕后供称想“杀死”他&#xff0c;以阻止AI发展、避免人类灭绝。俗话说&#xff0c;物极必反。信息越是通畅无阻&#xff0c;你的思维钻头就越吃不上劲儿&#xff0c;无处使劲儿&#x…...

ANIMATEDIFF PRO保姆级教程:手把手教你用文字生成电影感视频

ANIMATEDIFF PRO保姆级教程&#xff1a;手把手教你用文字生成电影感视频 1. 前言&#xff1a;开启你的AI电影创作之旅 想象一下&#xff0c;你只需要输入一段文字描述&#xff0c;就能获得一段具有电影质感的动态视频。这不是科幻电影的情节&#xff0c;而是ANIMATEDIFF PRO带…...

Qwen3.5-2B边缘部署案例:在Jetson Nano/树莓派上运行多模态AI的完整步骤

Qwen3.5-2B边缘部署案例&#xff1a;在Jetson Nano/树莓派上运行多模态AI的完整步骤 1. 引言&#xff1a;轻量级多模态AI新选择 Qwen3.5-2B作为Qwen3.5系列的小参数版本&#xff08;20亿参数&#xff09;&#xff0c;专为边缘计算设备优化设计。这个轻量化多模态基础模型在保…...

手把手教你用像素时装锻造坊:复古界面+Stable Diffusion,轻松玩转AI时装设计

手把手教你用像素时装锻造坊&#xff1a;复古界面Stable Diffusion&#xff0c;轻松玩转AI时装设计 1. 当AI时装设计遇上复古RPG 想象一下这样的场景&#xff1a;你坐在像素风格的工坊里&#xff0c;面前是一台闪着蓝光的锻造机。选择一款皮衣模板&#xff0c;输入几个关键词…...

高效跨平台小说下载器:一站式数字阅读管理完整方案

高效跨平台小说下载器&#xff1a;一站式数字阅读管理完整方案 【免费下载链接】Tomato-Novel-Downloader 番茄小说下载器不精简版 项目地址: https://gitcode.com/gh_mirrors/to/Tomato-Novel-Downloader Tomato-Novel-Downloader是一款基于Rust开发的智能跨平台小说下…...

腾讯开源 | 蒸馏结合可学习缓存:腾讯混元视频生成加速新探索

来自腾讯混元的全新AIGC视频生成加速方案--(Distillation-CompatibleLearnableFeatureCaching)DisCa正式开源&#xff0c;作为学界和业界首次对基于可学习的特征缓存技术进一步加速蒸馏后少步模型的这一方向的尝试&#xff0c;该工作现已被CVPR2026接收。TL;DR速览:DisCa主要聚…...

杭州师范大学生命科学学院2026考研复试资料包(电子版)|真齐全+高频考点全覆盖

温馨提示&#xff1a;文末有联系方式 杭师大生命科学学院2026考研复试专属资料包 本资料包专为报考杭州师范大学生命科学学院2026级硕士研究生的考生精心整理&#xff0c;全程电子化&#xff0c;内容系统全面&#xff0c;直击复试核心环节。 2025年杭师大生科院复试笔试真&am…...

重庆科技大学安全工程考研复试专用资料|涵盖安全系统工程、风险工程学等核心科目

温馨提示&#xff1a;文末有联系方式一、权威覆盖&#xff1a;重庆科技大学安全工程复试核心课程资料 本套资料深度聚焦重庆科技大学安全工程专业研究生复试要求&#xff0c;系统整合《安全系统工程》《风险工程学》等关键专业课内容&#xff0c;紧扣近年复试命趋势与学科重点&…...

【Java】类与对象的本质:从底层逻辑到面试实战

【Java】类与对象的本质&#xff1a;从底层逻辑到面试实战类与对象的本质——语言根基&#xff08;三&#xff09;一、从内存视角看“类”和“对象”1.1 类&#xff1a;一段只读的蓝图代码1.2 对象&#xff1a;一块可写的堆内存二、底层机制2.1 方法调用如何完成2.2 this 指针的…...

别等客户投诉才升级!2026奇点大会AI客服机器人5级成熟度模型来了:你的系统卡在L2还是已突破L4自治阈值?

第一章&#xff1a;2026奇点智能技术大会&#xff1a;AI客服机器人 2026奇点智能技术大会(https://ml-summit.org) 本届大会首次将AI客服机器人列为“可部署级智能体”核心示范场景&#xff0c;聚焦多模态意图理解、实时语义纠偏与跨平台服务编排三大突破。现场演示的OpenSer…...

直播预告 | 密歇根州立大学刘思佳教授:从机器遗忘到更广泛的模型调控

PaperWeekly 星弧 STARC 科研觉醒AI前沿讲座 直播主题 从机器遗忘到更广泛的模型调控 直播嘉宾 刘思佳密歇根州立大学杰出副教授MIT-IBM Watson AI Lab客座教授 直播时间 2026年4月18日&#xff08;周六&#xff09;10:00-11:00 参会方式 腾讯会议/VooV ID: 721-062-543 报告介…...

AI逆向|使用AI反编译反混淆练习平台第18题jsvmp

关注它&#xff0c;不迷路。本文章中所有内容仅供学习交流&#xff0c;不可用于任何商业用途和非法用途&#xff0c;否则后果自负&#xff0c;如有侵权&#xff0c;请联系作者立即删除&#xff01;一.题目地址https://match.yuanrenxue.cn/match/18二.抓包分析先打开控制台&…...

3DGS项目复现:从COLMAP稀疏重建到高斯模型训练全流程拆解

1. 3DGS项目复现概述 3D Gaussian Splatting&#xff08;3DGS&#xff09;是近年来计算机视觉领域的一项突破性技术&#xff0c;它通过将3D场景表示为大量可学习的高斯分布来实现高质量的视图合成。与传统的NeRF方法相比&#xff0c;3DGS在渲染速度、内存效率和场景细节保留方面…...

网易股权曝光:丁磊持股45.5% 身价2228亿 一年获股息超50亿

雷递网 雷建平 4月15日网易今日发布20-F文件&#xff0c;文件显示&#xff0c;网易董事、CEO为丁磊&#xff0c;独立董事分别为郑玉芬、唐徽、唐子期、陈觉忠、梁民杰&#xff0c;总法律顾问为Paul W. Boltz, Jr&#xff0c;财务副总裁为莫斌。截至2026年2月28日&#xff0c;丁…...

从零构建ROS机器人行为树:Groot可视化调试实战指南

1. 为什么需要行为树与Groot&#xff1f; 想象一下你在指挥一支机器人小队执行巡逻任务。如果只用传统代码写逻辑&#xff0c;可能会变成一堆复杂的if-else嵌套&#xff0c;就像用文字描述"如果看到敌人就攻击&#xff0c;否则检查A点&#xff0c;如果距离A点小于0.5米就…...

前端测试体系

前端测试体系&#xff1a;构建高质量Web应用的基石 在当今快速迭代的Web开发领域&#xff0c;前端测试已成为保障产品质量的关键环节。随着单页应用&#xff08;SPA&#xff09;和复杂交互场景的普及&#xff0c;前端代码的逻辑复杂度显著提升&#xff0c;仅靠人工测试已难以覆…...

手把手教你用SiameseAOE:中文文本情感抽取实战

手把手教你用SiameseAOE&#xff1a;中文文本情感抽取实战 1. 认识SiameseAOE模型 1.1 什么是属性观点抽取 想象一下&#xff0c;你面前有1000条用户对某款手机的评论&#xff0c;如何快速找出用户对"摄像头"、"电池"、"屏幕"等各个方面的评价…...

浦语灵笔2.5-7B开源可部署:魔搭社区ModelScope模型一键拉取

浦语灵笔2.5-7B开源可部署&#xff1a;魔搭社区ModelScope模型一键拉取 1. 模型概述与核心价值 浦语灵笔2.5-7B是上海人工智能实验室开发的多模态视觉语言大模型&#xff0c;基于InternLM2-7B架构&#xff0c;融合了CLIP ViT-L/14视觉编码器。这个模型能够同时理解图片和文字…...

Unity机械臂控制实战:两种运动方式对比与DOTween动画实现

Unity机械臂控制实战&#xff1a;两种运动方式对比与DOTween动画实现 机械臂控制在工业仿真、游戏开发等领域有着广泛应用。Unity作为一款强大的跨平台引擎&#xff0c;为机械臂控制提供了灵活的实现方案。本文将深入探讨两种主流运动方式——顺序运动与同步运动&#xff0c;并…...

CefFlashBrowser终极指南:如何让消失的Flash游戏和网页重现生机

CefFlashBrowser终极指南&#xff1a;如何让消失的Flash游戏和网页重现生机 【免费下载链接】CefFlashBrowser Flash浏览器 / Flash Browser 项目地址: https://gitcode.com/gh_mirrors/ce/CefFlashBrowser 你是否还在为无法玩经典的Flash游戏而烦恼&#xff1f;当主流浏…...

Pixel Fashion Atelier保姆级教程:从INSERT COIN按钮物理反馈到图像生成原理

Pixel Fashion Atelier保姆级教程&#xff1a;从INSERT COIN按钮物理反馈到图像生成原理 1. 认识像素时装锻造坊 像素时装锻造坊是一款基于Stable Diffusion与Anything-v5的图像生成工具&#xff0c;它将复古日系RPG的视觉风格与AI图像生成技术完美结合。与传统AI工具不同&am…...

从社交网络到推荐系统:用PyTorch Geometric快速上手你的第一个GNN实战项目

从社交网络到推荐系统&#xff1a;用PyTorch Geometric快速上手你的第一个GNN实战项目 在人工智能领域&#xff0c;图神经网络(GNN)正以惊人的速度改变着我们处理关系型数据的方式。想象一下&#xff0c;当社交网络中的用户关系、电商平台的购买记录或是学术论文的引用网络都能…...

从LAMMPS数据到二维温度云图:命令解析与可视化实战

1. LAMMPS温度数据解析基础 做分子动力学模拟的朋友都知道&#xff0c;LAMMPS输出的原始数据就像是一本天书&#xff0c;特别是当我们需要分析特定区域的温度分布时。今天我就来分享下如何把这些晦涩的数据变成直观的温度云图&#xff0c;这个技能在分析摩擦界面、热传导等问题…...

【独家首发】2024生成式AI基准测试白皮书(含12家头部厂商实测数据+3种负载建模范式),限时开放下载72小时

第一章&#xff1a;生成式AI应用性能基准测试 2026奇点智能技术大会(https://ml-summit.org) 生成式AI应用的性能表现不仅取决于模型参数量与推理框架优化&#xff0c;更受实际部署场景中延迟、吞吐量、内存驻留及长尾请求响应稳定性等多维指标制约。脱离真实负载模式的合成基…...