内存映射显示 space 分配给神秘变量 _powers_ 和 _npowers_
Memory map shows space allocated to mystery variables _powers_ and _npowers_
我一直在查看我的代码的内存映射(用 C 编写并由 XC16 编译器编译),并看到重要的 space 分配给 powers , npowers, 和 .data 段中的 dpowers。
有人知道这个分配的用途吗?
我的代码使用浮点库,以及 printf/scanf - 这对这些函数是否有效 space?
这是地图文件中的两个片段:
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)
您必须查看 libc 版本的来源才能获得明确的答案。我确实查看了其中一个的来源,发现在该实现中,dpowers 是用于输出 (doprnt) 的常量(10 的幂)的 table。我怀疑其他人也差不多。
注意 - 虽然是常量,但由于语言限制,这些不在只读部分中。
我一直在查看我的代码的内存映射(用 C 编写并由 XC16 编译器编译),并看到重要的 space 分配给 powers , npowers, 和 .data 段中的 dpowers。
有人知道这个分配的用途吗?
我的代码使用浮点库,以及 printf/scanf - 这对这些函数是否有效 space?
这是地图文件中的两个片段:
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)
您必须查看 libc 版本的来源才能获得明确的答案。我确实查看了其中一个的来源,发现在该实现中,dpowers 是用于输出 (doprnt) 的常量(10 的幂)的 table。我怀疑其他人也差不多。
注意 - 虽然是常量,但由于语言限制,这些不在只读部分中。