zoukankan      html  css  js  c++  java
  • 用一个词(TASPK)牢记C程序内存布局

    一个典型的C程序内存布局,从低地址到高地址分别为:

    1. text (正文段,即代码段 Code Segment)

    2. data (已经初始化的数据段)

    3. bss (未被初始化的数据段 Block Started by Symbol)

    4. heap (堆)

    5. stack (栈)

    注1:上图中的Code segement 即text。

    于是,采用缩写词记忆法如下所示:

    • 对第1个单词text取其第1个字符t
    • 对第2个单词data取其第2个字符a,
    • 对第3个单词bss取其第3个字符s,
    • 对第4个单词heap取其第4个字符p
    • 对第5个单词stack取其第5个字符k

    那么缩写词就是taspk, 大写为TASPK. (或者对所有单词都取最后一个字符,也是taspk)。用Python代码描述如下:

    >>> layout = ['text', 'data', 'bss', 'heap', 'stack']
    
    >>> abbr = ''
    >>> i = 0
    >>> for s in layout:
    ...     abbr += s[i]
    ...     i += 1
    ... 
    >>> print abbr.upper()
    TASPK
    
    >>> abbr = ''
    >>> for s in layout:
    ...     abbr += s[-1]
    ... 
    >>> print abbr.upper()
    TASPK

    tas: 正好是我在Sun/Oracle公司的STC代码库所在的服务器名,跟tas打交道10多年了,自然记得住了;

    pk: 这个词太熟悉不过了,PK者,单挑也(重庆话:对挖(3声))。

    于是"TASPK"可记忆为跟tas PK, 他(ta)死(s)!

    另外,如果想彻底搞明白text, data, bss等请阅读ELF文件格式相关文献。 推荐阅读CSAPP一书的第7章Linking。

  • 相关阅读:
    PHP安全编程之php.ini配置
    PHP安全编程
    PHP操作Mongodb
    PHP 提高PHP性能的编码技巧以及性能优化
    HTTP 304 详解
    PHP环境变量归纳(转自网络)
    【转载】解决Apache2+PHP上传文件大小限制的问题
    机器学习六 Xgboost: 一把屠龙刀的自我修养
    机器学习五 EM 算法
    机器学习四 SVM
  • 原文地址:https://www.cnblogs.com/idorax/p/6399932.html
Copyright © 2011-2022 走看看