代码之家  ›  专栏  ›  技术社区  ›  EBlake

内存映射显示分配给神秘变量_powers_和_npower的空间_

  •  1
  • EBlake  · 技术社区  · 10 年前

    我一直在查看代码的内存映射(用c编写,由XC16编译器编译),发现分配给 权力 , n功率 、和.data段中的dpowers。

    有人知道这个分配用于什么吗?

    我的代码使用浮点库,以及printf/scanf-这可能是这些函数的工作空间吗?

    以下是地图文件中的两个片段:

    section                    address      alignment gaps    total length  (dec)
    -------                    -------      --------------    -------------------
    ...
    .data._powers_              0x20b2                   0            0xb0  (176)
    .data._npowers_             0x2162                   0            0xb0  (176)
    .data.dpowers               0x2212                   0           0x140  (320)
    

    .data._powers_      0x20b2         0xb0
    .data._powers_
                        0x20b2         0xb0 c:/program files (x86)/microchip/xc16/v1.24/bin/bin/../../lib\libc-coff.a(powers.epo)
                        0x20b2                  _powers_
    
    .data._npowers_
                        0x2162         0xb0
    .data._npowers_
                        0x2162         0xb0 c:/program files (x86)/microchip/xc16/v1.24/bin/bin/../../lib\libc-coff.a(powers.epo)
                        0x2162                  _npowers_
    
    .data.dpowers       0x2212        0x140
    .data.dpowers      0x2212         0xa0 c:/program files (x86)/microchip/xc16/v1.24/bin/bin/../../lib\libc-coff.a(doprnt_cdfFnopsuxX.EPo)
    .data.dpowers      0x22b2         0xa0 c:/program files (x86)/microchip/xc16/v1.24/bin/bin/../../lib\libc-coff.a(doprnt.epo)
    
    1 回复  |  直到 10 年前
        1
  •  2
  •   DrC    10 年前

    您必须查看libc版本的源代码才能得到明确的答案。我确实查看了源代码,发现在该实现中,dpowers是用于输出(doprnt)的常数表(10次方)。我怀疑其他人都很相似。

    注意-虽然是常量,但由于语言限制,这些常量不在只读部分中。

    推荐文章