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}
  • 相关阅读:
    使用gRPC搭建Server端与Client端
    Protocol Buffers 介绍
    测试指标
    linux命令 host-常用的分析域名查询工具
    hping3
    linux命令 iperf-网络性能测试工具
    linux命令 dig-域名查询工具
    linux arping-通过发送ARP协议报文测试网络
    linux nslookup-查询域名DNS信息的工具
    linux netstat-查看Linux中网络系统状态信息
  • 原文地址:https://www.cnblogs.com/sea-stream/p/10995005.html
Copyright © 2011-2022 走看看