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

网站建设找祥赢58同城买房网

网站建设找祥赢,58同城买房网,做一网站需要多少钱,图书馆网站结构怎么做C 程序的典型内存由以下部分组成#xff1a; 文本段#xff08;text#xff09;初始化数据段 #xff08;data#xff09;未初始化数据段#xff08;bss#xff09;堆 #xff08;heap#xff09;栈#xff08;stack#xff09; 典型内存布局#xff1a; 1.文本段…C 程序的典型内存由以下部分组成 文本段text初始化数据段 data未初始化数据段bss堆 heap栈stack 典型内存布局 1.文本段 文本段也称为代码段或简称为文本是目标文件或内存中的程序部分之一其中包含可执行指令。作为内存区域文本段可以放置在堆或堆栈下方以防止堆和堆栈溢出覆盖它。 通常文本段是可共享的因此对于频繁执行的程序例如文本编辑器、C 编译器、shell 等内存中只需要保留一个副本。此外文本段通常是只读的以防止程序意外修改其指令。 2.初始化数据段 初始化数据段通常简称为数据data段。数据段是程序虚拟地址空间的一部分其中包含由程序员初始化的全局变量和静态变量。请注意数据段不是只读的因为变量的值可以在运行时更改。该段又可以分为初始化只读区和初始化读写区。 例如C 中 char s[] “hello world” 定义的全局字符串以及 main即全局之外的 int debug1 这样的 C 语句将存储在初始化的读写区域中。而像 const char* string “hello world” 这样的全局 C 语句使得字符串文字“hello world”存储在初始化的只读区域中而字符指针变量 string 存储在初始化的读写区域中。 例如 static int i 10 将存储在数据段中全局 int i 10 也将存储在数据段中 3. 未初始化数据段 未初始化数据段通常称为“ bss ”段以一个古老的汇编运算符命名代表“由符号开始的块”。该段中的数据在程序开始执行之前被内核初始化为算术0。未初始化的数据从数据段末尾开始包含所有初始化为零或源代码中没有显式初始化的全局变量和静态变量。 例如声明一个变量 static int i; 将包含在 BSS 段中。  例如声明了一个全局变量 int j将包含在 BSS 段中。 4. 栈 栈区传统上与堆区相邻并以相反的方向增长当堆栈指针遇到堆指针时可用内存就耗尽了。利用现代的大地址空间和虚拟内存技术它们几乎可以放置在任何地方但它们通常仍然以相反的方向增长。堆栈区域包含程序堆栈一种后进先出的结构通常位于内存的较高部分。在标准PC x86计算机架构上它向地址零增长在其他一些架构上它以相反的方向增长。“堆栈指针”寄存器跟踪堆栈顶部每次将值“推入”堆栈时都会对其进行调整。为一个函数调用推送的一组值称为“堆栈帧”堆栈帧至少包含一个返回地址。堆栈存储自动变量以及每次调用函数时保存的信息。每次调用函数时返回位置的地址以及有关调用者环境的某些信息例如一些机器寄存器都保存在堆栈中。然后新调用的函数在堆栈上为其自动变量分配空间。这就是 C 中的递归函数的工作原理。每次递归函数调用自身时都会使用一个新的堆栈帧因此一组变量不会干扰函数另一个实例中的变量。 5. 堆 堆是通常发生动态内存分配的段。堆区域从 BSS 段的末尾开始并从那里增长到更大的地址。堆区域由 malloc、realloc 和 free 管理它们可以使用 brk 和 sbrk 系统调用来调整其大小请注意使用 brk/sbrk 和单个“堆区域”并不需要履行合同malloc/realloc/free它们也可以使用 mmap 来实现以将虚拟内存的潜在非连续区域保留到进程的虚拟地址空间中。堆区域由进程中的所有共享库和动态加载的模块共享。 以下是一个说明的例子 #include stdio.hstatic unsigned int val1 1; //val1存放在.data段 unsigned int val2 1; //初始化的全局变量存放在.data段 unsigned int val3 ; //未初始化的全局变量存放在.bss段 const unsigned int val4 1; //val4存放在.rodata只读数据段unsigned char Demo(unsigned int num) //num 存放在栈区 {char var 123456; //var存放在栈区123456存放在常量区unsigned int num1 1 ; //num1存放在栈区static unsigned int num2 0; //num2存放在.data段const unsigned int num3 7; //num3存放在栈区void *p;p malloc(8); //p存放在堆区free(p);return 1; }void main() {unsigned int num 0 ;num Demo(num); //Demo()函数的返回值存放在栈区。 }
http://www.yutouwan.com/news/204212/

相关文章:

  • 株洲网站建设工作室wordpress 3.9.1
  • 现在网站主怎么做淘宝客php 网站授权
  • 巩义网站建设与制作2019银川住房建设规划信息网站
  • 2019年长春网站建设最新价格表网络工程师app
  • 东莞 网站 建设 物流网上购物的网站有哪些
  • 网站建设 客户评价祺越网站建设
  • 杭州建设网站免费网络公司经营范围包括哪些
  • 做旅游攻略去什么网站好怎么做自己的网站赚钱
  • 找装修公司去哪个网站外贸网站建设公司平台
  • 重庆网站制作公司 网站飘动
  • 口碑最好的网站建设网站建设seo优化公司
  • 毕设做网站酒店宣传推广方案
  • 云服务器做网站新手教程wordpress 插件 手机
  • 网站建设 八羊哪里有做手工活的可以拿回家的
  • 专业的聊城做网站费用dz网站模版
  • 门户网站 营销公众号接入小程序
  • 租房网站的财务分析表怎么做淄博网站建设团队
  • 福州企业制作网站有没有做ppt很厉害的网站
  • 高端企业门户网站建设费用网站开发实训报告
  • 开设赌场罪建设网站用python做一旅游网站
  • php怎么做网站教程数字广东网络建设有限公司是国企吗
  • 蒙城做网站厦门网站建设_
  • wordpress 模块化主题广州seo优化公司排名
  • 余姚网站建设的公司做服饰网站
  • 视频点播网站开发教程Wordpress 插件购买
  • 国外网站源代码1000M双线网站空间
  • 成都网站推广哪家专业安平丝网网站建设
  • 怎么做网站静态布局厦门模板建站平台
  • 哪家做网站最好榆林公司做网站
  • 咨询学校网站开发费用东莞网站建设 鞋材厂