<分区>
昨天我突然疑惑了。我已经用 C 编程很长时间了。我的问题是:
假设有一个变量
static uint32_t count = 0;
这个变量应该存储在数据段中。为了这个例子,我们假设数据段从进程的 4GB 虚拟内存空间中的偏移量 0x08000000
开始。
我知道在偏移量 0x08000000
之后的某处,有 4 个字节保留给值为 0 的变量“count”。
我的问题是内存中的这个 4 字节值如何与名称“count”和类型“uint32_t”相关联(例如,它是 4 字节长而不是 6 字节长。)
从下面的答案来看,映射信息似乎存储在“符号表”
这似乎表明它必须是内存中最终可执行文件的一部分。如果是这样,符号表存储在哪里?它在代码/文本段中吗?