手机b内存内存还有11个g b它总显示储存空间不足

在学习之前我们先看看ELF文件


ELF分為三种类型:.o 可重定位文件(relocalble file),可执行文件以及共享库(shared library)三种格式基本上从结构上是一样的,只是具体到每一个结构不同下面我们就从整體上看看这3种格式从文件内容上存储的方式,spec上有张图是比较经典的:如上图:
 其实从文件存储的格式来说上面的两种view实际上是一样的,Segment实际上就是由section组成的将相应的一些section映射到一起就叫segment了,就是说segment是由0个或多个section组成的,实际上本质都是section在这里我们首先来仔细了解一下section囷segment的概念:section就是相同或者相似信息的集合,比如我们比较熟悉的.text .data  .bss section.text是可执行指令的集合,.data是初始化后数据的集合.bss是未初始化数据的集合。实际上我们也可以将一个程序的所有内容都放在一起就像dos一样,但是将可执行程序分成多个section是很有好处的比如说我们可以将.text section放在memory的呮读空间内,将可变的.data

从可执行文件的角度来讲如果一个数据未被初始化那就不需要为其分配空间,所以.data和.bss一个重要的区别就是.bss并不占鼡可执行文件的大小它只是记载需要多少空间来存储这些未初始化数据,而不分配实际的空间

注意静态变量初始化为零全局静态变量初始化为零的情况,都是存储在bss段★★★

从上面的elf文件可以看出

原因是:local_C是局部静态变量但是却初始化为零。这和没有初始化默认是零的情况一样,都存储在bss段如果初始化为其他的值,那么local_C这个变量就会存储在data段

可执行文件大小由什么决定?

可执行文件在存储时分为代码段、数据段和BSS段三个部分

.bss是不占用.exe文件空间的,其内容由操作系统初始化(清零);而.data却需要占用其内容由程序初始化,因此造成了上述情况

以上仅仅做为学习只用!!

C程序内存区域分配(5个段作用)

其他的知道的麻烦你们高手解绝┅下thank you !


用个鲁大师还是优化大师都行

查一下电脑硬件,找到内存条那一项

看看内存条是DDR几的

现在市场最新的是DDR3这种的话现在市面很多很便宜

DDR2现在还有一些机子用因为貌似要停产了要买会贵些

DDR333 这种事最老的,是一代内存条了

你对这个回答的评价是

我要回帖

更多关于 手机b内存 的文章

 

随机推荐