美文网首页
程序载入过程

程序载入过程

作者: xiaobing | 来源:发表于2017-05-06 22:15 被阅读0次

    说明

    程序在执行main函数之前究竟会干些什么?全局变量是怎么来得?堆是怎样的及堆的生命周期。

    解释

    大家都知道main函数是程序的入口,可是main函数执行的时候那些全局变量,静态变量是怎么来的呢?
    要回答这些问题,我们需要了解一下,这些东西在内存中保存在哪里?其实点击exe执行时,操作系统会把程序和资源载入内存,先完成资源初始化,包括全局变量、字符串常量等然后再分配栈空间并跳转到main函数执行。
    其中就包含一个一个的节(节可以理解为一段内存),其中一个节就是用来保存全局变量的,如果全局变量有初始值那么载入后就已经初始化了,如果没有初始值,那么就分配相应的空间。由上面的解释我们可以知道这些节并没有在栈区,栈还没分配,这些节就已经存在了。那么可以知道函数调用后,栈区释放了对这些节没有任何影响,所以可以知道这些节并不会消失,全局变量所在的节又被称为堆区(堆其实就是一段内存),所以堆的生命周期就是一直到程序结束,同样 全局变量的生命周期也是如此。

    相关文章

      网友评论

          本文标题:程序载入过程

          本文链接:https://www.haomeiwen.com/subject/ytpetxtx.html