繁体   English   中英

用C语言存储的标识符

[英]Identifiers in the C language where are they stored

只是感兴趣而已。 我正在修改我对C早已被遗忘的生锈知识,并想知道在C中声明的变量的标识符存储在哪里?

例如,如果我在main中声明以下char value1。

int main(){
char value1 = 'A';
  return 0;
}

我知道char将存储在main的Stack Frame中的堆栈中。 可以说是否在像&value1这样的value1上关闭了地址。 我们将得到类似0xF37012(一个假设数字)的信息。 这将是值所在的位置,但是标识符呢? 以及这与0xF37012有何关联? 是在某个地方的烟囱中吗? 还是所有标识符都存储在某个全局表或列表中?

除非您专门为调试而编译,否则不会存储标识符。 如果在编译时确实设置了可调试性选项,则将有与函数/堆栈框架/静态存储关联的符号表提供这些映射。

除非生成调试信息,否则某些标识符将在编译时进行优化。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM