发布时间:2026/8/25 14:06:41
学习总结与data/bss 目录前言什么是 .data 段运行时视角什么是 .bss 段运行时视角.data 与 .bss 对比static 局部变量落在哪个段磁盘 ELF 段 和 进程内存段的区别.data/.bss 的生命周期与释放时机.data/.bss 总结前言AI问答式记录比较详细什么是 .data 段运行时视角.data属于进程静态存储区位于进程虚拟地址空间内。✅进入.data的两个必要条件必须同时满足变量全局变量 或者static静态变量初始化显式赋值非 0 的初始值重点提醒 函数内部普通局部变量开辟在栈帧永远不会进入.data。表格对比项.data 段内存归属静态存储区虚拟内存可存放变量全局、static初值不为 0内存权限可读、可写、不可执行磁盘 ELF 行为保存变量初始数据占用磁盘空间cint g_a 100; // 全局非0初值 → .data static int s_b 200; // static非0初值 → .data void func() { int l_c 10; // 局部变量 → 栈 }自测static int num 60;该变量存放在哪个段.data 的变量数据是怎么来到内存中的函数中普通局部变量会不会存放在.data1.data2. 映射虚拟内存3.不会✅批改.data正确不完全准确磁盘 ELF 文件保存着初始数值程序加载时把磁盘上的数据拷贝到内存不只是单纯映射虚拟内存。虚拟地址只是地址真实数据来源于可执行文件。不会 正确局部变量在栈帧。什么是 .bss 段运行时视角.bss同样属于进程静态存储区处在虚拟地址空间。✅进入.bss的两个必要条件必须同时满足变量全局变量 或者static静态变量初始化不写初始化或者显式赋值为 0重点提醒 函数内部普通局部变量开辟在栈帧永远不会进入.bss。表格对比项.bss 段内存归属静态存储区虚拟内存可存放变量全局、static未初始化 / 初值等于 0内存权限可读、可写、不可执行磁盘 ELF 行为不存储变量有效数据几乎不占用磁盘空间cint g_x; // 全局未初始化 → .bss static int s_y 0; // static显式赋值0 → .bss void func() { int l_z; // 局部变量 → 栈 }自测static int val 0;该变量存放在哪个段.bss 段在 ELF 磁盘文件中保存变量的实际数值吗函数内部普通局部变量会不会存放在.bss1.bss2.不会3.不会✅批改.bss正确不会 正确.bss不在 ELF 中存放实际数值仅记录需要多大内存不会 正确局部变量在栈帧小结.bss只记录内存大小信息磁盘几乎不占空间程序加载后操作系统把这一块内存整体清零。.data 与 .bss 对比二者都属于静态存储区位于进程虚拟地址空间。局部变量存栈和这两个段无关。表格对比项目.data.bss接收变量全局 /static初值非 0全局 /static未初始化 或初值 0ELF 磁盘文件保存变量初始值占用磁盘空间仅记录内存大小不存真实数值几乎不占磁盘内存数据来源把磁盘的数据拷贝到内存操作系统加载后整块内存置 0内存权限可读、可写、不可执行可读、可写、不可执行高频易错点int g 0;就算手动写赋值 0依然归属于.bss不属于.data。cint a 10; // .data static int b; // .bss int c 0; // .bss void test() { int d 5; // 栈 }自测int global 0;该全局变量属于哪一个段下列哪一项是.data的特点 A、磁盘不保存数据 B、从 ELF 拷贝初值到内存 C、用来存放栈变量判断局部 static 变量有可能落到 .bss 或者 .data对 / 错1.dss2.B3.对✅批改笔误是.bss结论正确。int global 0;初值为 0进入.bssB 正确.data会将 ELF 里面保存的初值拷贝进内存对 正确。局部static本质是静态变量初值非 0 进.data初值为 0 / 不初始化进.bss小结static修饰的局部变量不在栈上放到静态存储区.data/.bss函数结束不会销毁。static 局部变量落在哪个段普通局部变量在栈帧函数调用结束栈回收变量直接销毁。 被static修饰的局部变量不再存放在栈中放到静态存储区。✅分配规则static 局部变量显式非 0 初始化 →.data 段static 局部变量不初始化 / 初始化为 0 →.bss 段重点生命周期随整个进程函数退出不会销毁保留上一次的值作用域依旧只能在定义它的函数内部使用别的函数不能直接访问表格变量类型存储位置生命周期普通局部变量栈帧函数调用期间static 局部变量.data / .bss整个进程运行周期cvoid func(void) { static int s1 10; //非0初值 → .data static int s2 0; //初值0 → .bss static int s3; //未初始化 → .bss int normal; //普通局部 → 栈 }自测static int a 5;写在函数内部该变量存放在哪个段static 局部变量函数调用结束之后变量会销毁吗判断static 局部变量别的函数可以直接访问对 / 错1. data2.不会3.错✅批改.data正确非 0 初始化的 static 局部变量存放在.data 段不会 正确存放在静态存储区进程结束才销毁函数退出会保留数值错 正确作用域仅限于当前函数外部函数不能直接访问小结 static 局部变量存储位置在静态区作用域局限于函数内这是最容易混淆的考点。磁盘 ELF 段 和 进程内存段的区别写好的 C 程序编译链接之后得到ELF 可执行文件存放在磁盘。 当程序运行操作系统把 ELF 加载才形成进程的虚拟地址空间。关键区分磁盘是文件存在硬盘上进程虚拟内存程序跑起来之后操作系统给进程分配的虚拟地址空间表格对象.data.bss磁盘 ELF 文件占用磁盘存放变量初始值几乎不占磁盘只记录需要的内存大小运行之后内存映射到虚拟内存数据从 ELF 拷贝过来虚拟内存分配空间操作系统置 0⚠️非常容易踩坑.bss在磁盘里根本没有存放变量数据只有程序运行起来之后内存才会有这一块空间。cint g_val1 20; //磁盘.data段保存20运行加载到内存.data int g_val2; //磁盘不存数值仅记录大小运行分配到内存.bss并清零自测ELF 磁盘文件中.bss是否存储变量实际的值.data段变量初始值来自哪里判断.bss 拥有磁盘文件存储空间对 / 错1.否2.EIF文件3.错✅批改否 正确磁盘 ELF 的.bss 只记录内存尺寸不存变量真实数值ELF 文件 正确程序加载时把 ELF 里保存的初值拷贝进内存错 正确.bss不占用 ELF 有效存储空间小结 磁盘上 ELF 的段 ≠ 运行时内存段。.bss 属于 “运行时才创造出来” 的内存空间磁盘文件不给它存数据。.data/.bss 的生命周期与释放时机.data、.bss的变量全部属于静态存储区。分配时机程序加载运行的时候操作系统就为它们分配虚拟内存。生命周期贯穿整个进程的全部运行时间。释放时机进程结束退出操作系统回收内存。函数调用、函数返回不会回收这两块内存。区分对比 普通局部变量栈函数调用开辟函数结束立刻回收。 .data/.bss 变量不受函数进出影响。表格.data / .bss栈局部变量分配程序加载时函数调用时释放进程结束函数执行完毕生存时间整个进程单次函数调用cvoid count(void) { static int cnt 0; // .bss函数退出不会销毁数值保留 cnt; } int g 10; // .data全程存活自测.data、.bss 中变量什么时候释放内存函数返回之后static 静态变量的值会丢失吗判断进入函数才分配.data 段变量的内存对 / 错1.程序结束2.不会3.错✅批改程序结束 正确进程退出操作系统回收.data/.bss的内存不会 正确static 变量存静态存储区函数返回值保留错 正确程序加载的时候就完成内存分配不是调用函数才分配小结 栈随函数生灭.data、.bss跟随整个进程和函数调用无关。.data/.bss 总结什么样的变量才会进.data/.bss只有全局变量、static 修饰变量。普通局部变量在栈跟这两个段无关。归属判定规则全局 /static显式非 0 初始化 →.data全局 /static未初始化 或者初始化为 0 →.bss磁盘 ELF 与内存差异.dataELF 磁盘保存初始值程序加载拷贝到内存。.bss磁盘上不存放数据仅记录需要内存大小运行时分配虚拟内存操作系统统一清零。生命周期都属于静态存储区程序加载就分配内存进程结束才释放不受函数调用‑返回影响。cint A 10; // .data int B 0; // .bss int C; // .bss void test(){ static int D 20; // .data static int E 0; // .bss int F; // 栈 }

相关新闻

2026/8/25 14:06:41

Logs 的原理

目录 第一部分 Logs 第二部分 操作 第三部分 AI 要点(只建框架) 第一部分 Logs 1. 一条日志本质上是什么 一条日志 带时间戳的事件记录。最小形态:时间 谁说的 严重程度 说了什么 可观测性里还希望有:服务名、实…

2026/8/25 14:06:41

《什么是线性回归,成本函数,梯度下降》

线性回归:线性回归就是找一条直线,让这条直线贴合数据,用来预测新的数据成本函数:成本函数就是用来衡量这条直线画的好不好的一个数字。误差越大,成本越高,画的越差。梯度下降:梯度下降是一种方…

2026/8/25 14:06:41

AI漫剧实操指南

AI漫剧制作全流程实操指南:零基础单人低成本起号,抢占短视频流量红利! 摘要:本文系统介绍了AI漫剧制作的完整六步流程:从剧本创作、分镜设计、文生图、图生视频、剪辑配音到发布优化。针对零基础创作者,详细拆解了每个环节的核心要点、实用技巧和避坑指南,提供可复用的…

2026/8/25 16:17:10

98配列机械键盘选购指南:从核心配置到实战推荐

最近在帮朋友挑选机械键盘时,发现98配列(或称100键)的键盘热度持续走高。这个配列在保留数字小键盘的同时,通过紧凑布局大幅缩减了尺寸,兼顾了办公效率和桌面空间,成为许多用户从全尺寸键盘升级的首选。然而…

2026/8/25 16:17:10

从Claude技能清单到AI协作元能力:掌握Prompt设计核心逻辑

最近在 GitHub 上看到一个项目,一个汇集了各种 Claude 使用技巧的清单,星标数蹭蹭往上涨,很快就突破了 7 万。很多人点进去,第一反应是收藏、下载,然后……就没有然后了。这让我想起一个老问题:我们面对一个…

2026/8/25 16:17:10

【毕设分享】超市货物管理系统18265

摘要超市收发货仍靠纸质单和Excel表,员工抄码、电话报数、人工盘点,错记漏记频繁,库存账与实物常差成百件。月底统计需抽调三四人加班对单,价格变动靠口头通知,采购员凭经验下单,滞销与断货交替出现。财务汇…

2026/8/25 16:17:10

零公网IP搭建《我的世界》基岩版服务器:FRP内网穿透实战指南

这次我们来看一个非常实用的技术方案:如何在没有公网IP的情况下,搭建一个《我的世界》基岩版服务器,并实现远程联机。对于很多想在本地电脑上开服和朋友一起玩的玩家来说,最大的障碍就是运营商不提供公网IP,导致朋友无…

2026/8/25 16:12:09

SpringBoot集成测试的最佳实践分享

你盯着那条红色失败用例,昨晚它明明还是绿的。没有改任何业务代码,只是CI环境的数据库连接池比本地小。这是SpringBoot集成测试最常见的噩梦——测试本身成了比被测代码更脆弱的存在。当一套测试需要依赖环境、顺序、甚至运气才能通过时,它就…

2026/8/25 1:04:19

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/25 11:48:27

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/24 8:17:29

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/25 0:04:14

三步把QQ空间历史说说导出到本地:GetQzonehistory 极简指南

三步把QQ空间历史说说导出到本地:GetQzonehistory 极简指南 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory Meta Description:GetQzonehistory 是一个QQ空间历史说…

2026/8/25 0:04:14

洛谷 P7912:[CSP-J 2021 T4] 小熊的果篮 ← 双向链表

【题目来源】 https://www.luogu.com.cn/problem/P7912 【题目描述】 小熊的水果店里摆放着一排 n 个水果。每个水果只可能是苹果或桔子,从左到右依次用正整数 1,2,…,n 编号。连续排在一起的同一种水果称为一个“块”。小熊要把这一排水果挑到若干个果篮里&#x…

2026/8/24 13:42:17

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/24 18:13:48

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/25 1:08:14

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…