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

免费金融发布网站模板代理公司注册收费

免费金融发布网站模板,代理公司注册收费,上海对外贸易公司,彩票系统网站建设#xff11;昨天有一个群里的同学问我#xff0c;他问我的问题是 c 语言函数是存在哪里的#xff1f;是如何执行的#xff1f;我下意识的觉得这位同学应该是个初学者#xff0c;所以今天就写下一些基础方面的内容#xff0c;「C语言的内存布局」。程序代码可以看做是一个… 昨天有一个群里的同学问我他问我的问题是 c 语言函数是存在哪里的是如何执行的我下意识的觉得这位同学应该是个初学者所以今天就写下一些基础方面的内容「C语言的内存布局」。程序代码可以看做是一个人是人就需要有房子住操作系统就是政府政府有义务给找个位置给你住如果你是高级人才他就给你个 vip 给你分个大房子但是如果你对社会没有帮助  手上没钱那你可能就需要住天桥下。我们刚开始学习单片机的时候还没有进程线程操作系统的概念程序直接下载到 rom 里面等你有了操作系统概念反过来看看会觉得以前自己写的代码都是单线程的。2C 语言内存分配的框图如下一个正常的执行代码 操作系统需要给他分配一段内存区域这一大块内存区域还要分为几个小区域。1.文本段Text segment2.初始化数据段Initialized data segment3.未初始化数据段Uninitialized data segment4.堆栈Stack5.堆 Heap31.文本段文本段也称为代码段是目标文件或内存中包含可执行指令的程序的一部分。作为存储区域文本段可以放置在堆或堆栈下方以防止堆和堆栈溢出覆盖它。通常文本段是可共享的因此对于频繁执行的程序例如文本编辑器C 编译器shell 等只需要一个副本就可以在内存中。此外文本段通常是只读的以防止程序意外修改其指令。文本段可以看做 这段代码 的 大脑需要怎么执行做什么都把数据保存在这个位置了。2.初始化数据段初始化数据段通常简称为数据段。数据段是程序的虚拟地址空间的一部分其包含由程序员初始化的全局变量和静态变量。请注意数据段不是只读的因为变量的值可以在运行时更改。该段可以进一步分类为初始化的只读区域和初始化的读写区域。例如C 中的 char s [] “hello world”定义的全局字符串和 int debug 1 之类的 C语句 将存储在初始化的读写区域中。像 const char * string “hello world”这样的全局 C语句 会把 字符串文字“hello world”存储在初始化的只读区域中而字符指针变量字符串存储在初始化的读写区域中。例如static int i  10 将存储在数据段中global int i  10 也将存储在数据段中3.未初始化的数据段未初始化的数据段通常称为“bss”段以古代汇编运算符命名代表“由符号启动的块”。此段中的数据在程序启动之前由内核初始化为算术 0 执行未初始化的数据从数据段的末尾开始包含初始化为零或在源代码中没有显式初始化的所有全局变量和静态变量。例如变量声明为static int i; 将包含在BSS部分中。例如一个声明为int j的全局变量; 将包含在BSS部分中。4.堆栈我们很多时候说的堆栈实际上就是栈 stack 跟堆 heap 是没有关系的。我们学习上经常说的 压栈说的就是压堆栈因为堆栈有 「先进后出的原则」所以我们操作的是栈尾。堆栈区域传统上与堆区域相邻并向相反方向增长; 当堆栈指针遇到堆指针时可用内存耗尽因为理论上这个两个家伙是不可能 相遇的 。使用现代大地址空间和虚拟内存技术它们几乎可以放置在任何地方但它们通常仍会朝着相反的方向发展。堆栈区域包含程序堆栈LIFO结构通常位于存储器的较高部分。在标准的PC x86计算机体系结构上它向零地址发展; 在其他一些架构上它朝着相反的方向发展。“堆栈指针”寄存器跟踪堆栈的顶部; 每次将值“推”到堆栈上时都会调整它。5.堆堆是通常发生动态内存分配的段。堆区域从BSS 段的末尾开始并从那里增长到更大的地址。堆区域由 mallocrealloc 和 free 管理可以使用 brk 和 sbrk 系统调用来调整其大小;它们也可以使用mmap实现将不连续的虚拟内存区域保留到进程的“虚拟地址空间”中。堆区域由进程中的所有共享库和动态加载的模块共享。4实用 size 命令可以分析生成的可执行程序每个段的大小单位是bytes 字节。我们可以用这个命令验证上面的论证。代码实例#includestdio.hint main(){    return 0;}Linuxdev:~/cStudy$ gcc memory-test.c -o memory-test  size memory-test   text    data     bss     dec     hex filename   1099     544       8    1651     673 memory-testLinuxdev:~/cStudy$ 现在代码里面什么都没有可以看到每个段内容的大小。#includestdio.hint g;int main(){    static int i;    return 0;}--------------------------------------------------Linuxdev:~/cStudy$ gcc memory-test.c -o memory-test  size memory-test   text    data     bss     dec     hex filename   1099     544      16    1659     67b memory-testLinuxdev:~/cStudy$ 我们声明了一个未初始化的全局变量和一个未初始化的静态变量后bss 段发生了变化。再修改一下#includestdio.hint g  99;int main(){    static int i  100;    return 0;}--------------------------------------------------Linuxdev:~/cStudy$ gcc memory-test.c -o memory-test  size memory-test   text    data     bss     dec     hex filename   1099     552      8     1659     67b memory-testLinuxdev:~/cStudy$ 初始化后 bss 段变成原来 8 了 data 段多了 8 个字节。再修改一下#includestdio.hint g ;int main(){    static int i  100;    return 0;}--------------------------------------------------Linuxdev:~/cStudy$ gcc memory-test.c -o memory-test  size memory-test   text    data     bss     dec     hex filename   1099     548      12     1659     67b memory-testLinuxdev:~/cStudy$ 这样 bss 段和 data 段都比初始值增加了 4 个字节。5推荐之前跟这个相关的文章也是写 内存 区域的东西两篇文章联系起来看会非常好。堆和栈的区别转过无数次的文章还是推荐一下我的知识星球加入星球的福利我会慢慢增加当然还是以自愿为主加入星球了同学希望还是在星球提问题这样的问答环境会更好也方便追溯问题。我的知识小密圈昨天大概看了一下文章的情况发现收藏的人数很多但是转发的人数很少各位大哥哥大帅哥能不能给小弟一点点活路稍微转发一下在知乎的时候就是收藏的数量远远超过点赞已经让我很伤心了。完各位共勉~
http://www.yutouwan.com/news/63114/

相关文章:

  • 广州开发区投资集团有限公司四川网络推广seo
  • 网站设计的意义网推推荐信
  • 响应式网站开发 三合一建站网站建设价目
  • WordPress全站展示广西柳州市
  • 企业网站模板 下载网站使用arial字体下载
  • 网站编辑工具软件网络营销是什么?
  • 网站页面链接结构网站开发投票代码
  • PHP套模板做网站陕西江川建设有限公司公司网站
  • 有没有做电子名片的网站站长工具seo综合查询5g
  • 国外建设网站国外做饮用来源的网站
  • 网站管理问题南昌做建网站的
  • 环保网站模板代码企业网站主要有哪四种类型
  • 自己制作网站的方法是如何提高网站的点击量
  • 建材网站建设 南宁电影采集网站流量
  • 上海做网站的知名企业网站建设发专业人才培养方案
  • 加强公司窗口网站建设站长之家的seo综合查询工具
  • 中国建设工程招标网官方网站中国最大的软件公司排名
  • 网站建设的分阶段步骤体育论坛网站建设
  • 淘宝联盟推广网站怎么建设客户管理系统小程序
  • 南宁seo网站建设山东企业网站建设推荐
  • 怎么做彩票网站代理网站开发服务器配置
  • 北京餐饮网络营销公司浙江网站建设抖音seo优化
  • 门户网站什么意思国外销售网站
  • 网站建设 ader关于茶文化网站建设的背景
  • 贺州做网站南阳专业网站制作费用
  • 网站小图标素材下载杭州网站备案
  • 济宁网站建设济宁天津网站推广外包
  • 网站怎么做反链wap网站是什么意思啊
  • 男女情感类网站数学老师做直播的网站
  • 容桂网站建设原创ps做网站横幅