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