zoukankan      html  css  js  c++  java
  • c语言 内存,可执行文件

    c语言代码与可执行文件的映射关系

    函数中的代码 存储在.text 段中
    已初始化的全局变量 存储在.data段
    未初始化的全局变量 存储在.bss段中
    程序类型 映射到file header中

    面试题:
    脚本代码文件是不是可执行程序?

    是,也不是!下面是过程!
    可执行程序->操作系统加载->生成进程
    脚本文件->脚本解释程序->生成进程->操作系统读取脚本文件解释执行

    ------------------------------------------------------------------------------------------------
    可执行程序与内存的映射关系
    堆栈段是程序运行后才正式存在的,是程序运行的基础。


    #静态存储区
    .bss 存放未初始化的全局变量和静态变量
    .data 存放已初始化的全局变量和静态变量
    .text 存放程序中函数体中的可执行代码


    #只读存储区
    .rodata 存放程序中的常量值,如字符串常量


    局部变量存放在栈空间
    动态空间为堆空间
    可执行代码存放在.text段

    ------------------------------------------------------------------------------------------------

    面试题:
    全局变量和静态变量,为什么初始化的和未初始化的保存在不同段中?

    自由发挥

    数组在一片连续的内存空间中存储元素
    数组元素的个数可以显示或隐式指定
    例子:

    int a[5]={1,2}
    int b[]={1,2}
  • 相关阅读:
    fiddler配置及使用教程
    获取字符串中出现次数最少的字符
    引用数据类型的深拷贝
    jquery一些方法
    常用字体
    图片模拟
    返回上一页并刷新
    移动端网页调试神器
    input一些限制
    使用transform后z-index失效的解决方法
  • 原文地址:https://www.cnblogs.com/sea-stream/p/10995005.html
Copyright © 2011-2022 走看看