可执行程序包括BSS、数据、代码(也称文本段)。BSS(Block Started by Symbol)通常是指用来存放程序中未初始化的全局变量和静态变量的一块内存区域。特点是:可读写的,在程序执行之前BSS会自动清0。所以,未初始的全局变量在程序执行之前已经成0了。注意和数据的区别,BS...
转载 2014-05-27 19:47:00
331阅读
2评论
C/C++对于定义的没赋值的变量开辟的空间在BSSBSS的数据全部为0 赋值的变量的数据被定义在data的数据内 ...
转载 2021-08-01 21:50:00
567阅读
BSS(Block Started by Symbol)这个词最初是UA-SAP汇编器(United Aircraft Symbolic AssemblyProgra
转载 2022-08-01 12:55:40
487阅读
一般情况,一个程序本质上都是由 bss、data、text三个组成——这是计算机程序设计
原创 2023-07-03 10:43:49
404阅读
最近正在重温《程序员的自我修养》一书,由于水平比以前有所提升,所以读书的收获也不一样。 下面针对该书3.3.3节BSS的内容进行更细节的探讨——该节内容不在本文中重复说明了,只说一下结论。对于全局变量来说,如果初始化了不为0的值,那么该全局变量则被保存在data,如果初始化的值为0,那么将其保存
转载 2016-12-25 14:21:00
633阅读
2评论
数据、代码、堆栈BSS的区别5个数据进程(执行的程序)会占用一定数量的内存,它或是用来存放从磁盘载入的程序代码,或是存放取自用户输入的数据等等。不过进程对这些内存的管理方式因内存用途不一而不尽相同,有些内存是事先静态分配和统一回收的,而有些却是按需要动态分配和回收的。对任何一个普通进程来讲,它都会涉及到5种不同的数据Linux进程的五个下面我们来简单归纳一下进程对应的内存空间中所
转载 精选 2013-09-29 21:34:33
1026阅读
本文结合实际的例子讲述一下数据、代码、堆栈以及BSS。more。
转载 2023-05-22 15:17:27
2009阅读
【例一】 用cl编译两个小程序如下:程序1: int ar[30000];void main(){ ......} 程序2: int ar[300000] = {1, 2, 3, 4, 5, 6 };void main(){ ......} 发现程序2编译之后所得的.exe文件比程序1的要大得多。当下甚为不解,于是手工编译了一下,并使用了/FAs编译选项来查看了一下其各自的.as...
转载 2007-10-24 15:17:00
340阅读
一般情况下,一个程序本质上都是由 bss、data、text三个组成的——本概念是当前的计算机程序设计中是很重要的一个基本概念。而且在嵌入式系统的设计中也非常重要,牵涉到嵌入式系统运行时的内存大小分配,存储单元占用空间大小的问题。 在采用段式内存管理的架构中(比如intel的80x86系统),
转载 2018-01-31 09:41:00
1019阅读
2评论
text,data,bss,堆和栈一个程序一般分为3:text,data,bsstext:就是放程序代码的,编译时确定,只读。更进一步讲是存放处理器的机器指令,当各个源文件单独编译之后生成目标文件,经连接器链接各个目标文件并解决各个源文件之间函数的引用,与此同时,还得将所有目标文件中的.text合在一起,但不是简单的将它们“堆”在一起就完事,还需要处理各个之间的函数引用问题。在
原创 2013-12-17 10:34:44
6138阅读
一个程序一般分为3:text,data,bss text:就是放程序代码的,编译时确定,只读, data:存放在编译阶段(而非运行时)就能确定的数据,可读可写 就是通常所说的静态存储区,赋了初值的全局变量和静态变量存放在这个区域,常量也存放在这个区域 bss:定义而没有赋初值的全局变量
转载 2017-01-20 10:53:00
677阅读
2评论
readelf -S [文件名] ...
转载 2021-10-17 17:12:00
2004阅读
2评论
5个数据进程(执行的程序)会占用一定数量的内存,它或是用来存放从磁盘载入的程序代码,或是存放取自用户输入的数据等等。不过进程对这些内存的管理方式因内存用途不一而不尽相同,有些内存是事先静态分配和统一回收的,而有些却是按需要动态分配和回收的。对任何一个普通进程来讲,它都会涉及到5种不同的数据Linux进程的五个下面我们来简单归纳一下进程对应的内存空间中所包含的5种不同的数据区都是干什么的。
BSS、数据、代码、堆与栈 BSSBSSbss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。BSS是英文Block Started by Symbol的简称。BSS属于静态内存分配。 数据:数据(data segment)通常是指用来存放程序中已初始化的全局变量的一块内存区域。数据属于静态内存分配。 代码:代码(code segment/
转载 精选 2010-05-13 11:01:21
728阅读
BSS:(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。B
原创 2022-09-14 21:35:51
643阅读
进程(执行的程序)会占用一定数量的内存,它或是用来存放从磁盘载入的程序代码,或是存放取自用户输入的数据等等。不过进程对这些内存的管理方式因内存用 途 不一而不尽相同,有些内存是事先静态分配和统一回收的,而有些却是按需要动态分配和回收的。对任何一个普通进程来讲,它都会涉及到5种不同的数据。 Linu
转载 2013-08-03 10:59:00
493阅读
2评论
 程序编译后生成的目标文件至少含有三个,分别为:.text、.data和.bss。  text:就是放程序代码的,编译时确定,只读; data:存放在编译阶段(而非运行时)就能确定的数据,可读可写.就是通常所说的静态存储区,赋了初值的全局变量和静态变量存放在这个区域,常量也存放在这个区域;  bss:定义而没有赋初值的全局变量和静态变量,放在这个区域; 一个由c/C++编译的程序运
转载 2013-09-08 22:46:00
393阅读
BSSBSSbss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。Be
转载 2023-01-05 13:10:31
396阅读
http://unix.stackexchange.com/questions/74319/how-does-linux-know-the-location-of-file-data-on-disk
原创 2013-11-08 10:55:31
538阅读
一个程序的运行是需要内存的,那么我们平常写的程序的内存都是怎么分配的呢?都是在一起存放?还是分开?按照什么规律呢?预备知识: (1)首先我们要知道,内存是真实存在的,内存是一个物理器件。它时由操作系统管理的,我们平常只要使用它就行了,为了方便管理。操作系统提供了很多种机制来管理内存,每一种机制都有其特点。 (2)三种内存来源:栈(stack)、堆(heap)、数据区(data)
转载 2017-07-07 10:50:15
1617阅读
  • 1
  • 2
  • 3
  • 4
  • 5