数据在物理上分别储存在RAM和Flash中。RAM可读可写,掉电清零。Flash可读可写,但是读写时间很长,能掉电储存,并且一般空间比RAM大很多。

出现在启动文件或者ld内存分配文件及编译后的map(具体指示数据和代码位置大小信息等)文件中常见的一些名称有text,data,bss,stack,constdata。

data
数据段,储存已初始化的,且初始化不为0的全局变量和静态变量。

bss
数据段,Block Started by Symbol。储存未初始化的,或初始化为0的全局变量和静态变量。

text
代码段,储存程序代码。

constdata
储存只读常量。

heap
堆,存放进程运行中被动态分配的内存段。其可用大小定义在启动文件,由程序员使用malloc()和free()函数进行分配和释放。

stack
栈,其大小定义在启动文件中,由系统自动分配和释放。可存放局部变量、函数的参数和返回值,中断发生时能保存现场。但是static声明的局部静态变量不储存在栈中,而是放在data数据段。

原文来自:https://blog.csdn.net/xingqingly/article/details/120260398?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165905835316782350841130%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=165905835316782350841130&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v1~rank_v31_ecpm-1-120260398-null-null.142v35control&utm_term=stack%E5%BA%94%E8%AF%A5%E5%88%86%E9%85%8D%E5%A4%9A%E5%A4%A7%E7%9A%84%E7%A9%BA%E9%97%B4&spm=1018.2226.3001.4187

关于内存分配代码段数据段的几个概念理解相关推荐

  1. 【转】汇编 代码段数据段堆区栈区

    一个程序经过汇编之后生成:数据段.代码段.栈区.堆区. 如下图显示:        bss段:用来存放程序中未初始化全局变量的一块内存区域,bss:block start by symbol :静态内 ...

  2. 代码段+数据段+bss段+stack+heap

    在学习之前我们先看看ELF文件. ELF分为三种类型:.o 可重定位文件(relocalble file),可执行文件以及共享库(shared library),三种格式基本上从结构上是一样的,只是具 ...

  3. C:谈谈内存分配中的(.data)段和(.bss)段的区别?为什么要分.data段和.bss段?

    区别: .data段: 存放已初始化的全局变量.在编译器编译的时候,会给已初始化的数据分配内存空间,数据保存在目标文件中. .bss段: (bss是英文Block Started by Symbol的 ...

  4. 段寄存器中代码段数据段堆栈段附加段

    段寄存器中代码段数据段堆栈段附加段

  5. java 序列化概念和作用_结合代码详细解读Java序列化与反序列化概念理解

    Java序列化与反序列化是什么?为什么需要序列化与反序列化?如何实现Java序列化与反序列化?本文围绕这些问题进行了探讨. 1.Java序列化与反序列化 Java序列化是指把Java对象转换为字节序列 ...

  6. c语言代码存放的区域 堆栈,C语言中内存分布及程序运行中(BSS段、数据段、代码段、堆栈)...

    BSS段:(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域.BSS是英文Block Started by Symbol的简称.BSS段属于静态内存分配. 数据段 :数据 ...

  7. 程序内存区域分配(五个段)--终于搞明白了

    在学习之前我们先看看ELF文件. ELF分为三种类型:.o 可重定位文件(relocalble file),可执行文件以及共享库(shared library),三种格式基本上从结构上是一样的,只是具 ...

  8. linux进程的堆栈空间_代码段(指令,只读)、数据段(静态变量,全局变量)、堆栈段(局部变量)、栈【转】...

    转自:http://blog.csdn.net/gongweijiao/article/details/8207333 原文参见:http://blog.163.com/xychenbaihu@yea ...

  9. java数据段 静态区_linux进程的堆栈空间_代码段(指令,只读)、数据段(静态变量,全局变量)、堆栈段(局部变量)、栈【转】...

    一)概述 .堆栈是一个用户空间的内存区域,进程使用堆栈作为临时存储. .堆栈中存放的是函数中的局部变量,在函数的生命周期中可以将变量压入堆栈,编译器需要确保堆栈指针在函数退出前恢复到初始位置,也就是说 ...

最新文章

  1. 原生js监听input值发生变化
  2. 揭秘各国总统们钟爱的手机
  3. python写接口函数_python接口自动化测试二十:函数写接口测试
  4. 卡屏java_Java drawImage到屏幕上一卡一卡的
  5. sql中有一些保留字,当你的字段名是它的保留字时,这个时候sql语句的字段不加``就会报错...
  6. Client端异步Callback的应用与介绍
  7. C++学习随笔之一:基础
  8. 002redis常用的数据结构
  9. Could not connect to Redis at 127.0.0.1:13141: Cannot assign requested address
  10. php.ini 忽略警告,配置php.ini去掉警告信息
  11. VSTO 阿炯公文插件 wps/word 插件
  12. OCCT示例学习笔记3--Modeling项目
  13. 计算机联锁中JDF是什么组合,2019年新准线海勒斯壕南站站改工程招标公告
  14. mysql连接timeout_mysql 连接超时wait_timeout问题解决
  15. 天融信数通小百科:无线AP的Soul mate—POE交换机
  16. 会员管理-小程序-免费使用体验
  17. 基于Gromacs的蛋白分子动力学模拟(RMSD、RMSF及蛋白的回旋半径)
  18. 数据库api如何获取实时股票数据?
  19. (免费分享)基于ssm的BBS社区论坛系统带论文
  20. Selenium 启动IE浏览器常见问题

热门文章

  1. java 随机昵称_Java随机产生中文昵称
  2. kubelet status 为activating (auto-restart) 的情况的处理
  3. linux服务器免密登录
  4. 公共基础知识:垃圾分类
  5. 框架设计--第一章 Spring的基本应用--习题答案
  6. css样式加载顺序及覆盖顺序深入理解
  7. 通过智能网关搭建智慧杆可视对讲系统
  8. [渝粤教育] 南京大学 大学生劳动教育 参考 资料
  9. Android-Looper是个什么东西
  10. 李承鹏“卖拐”了吗?