首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

问个C语言符号表的有关问题

2013-11-21 
问个C语言符号表的问题一直以来对C变量的如何存储一知半解。例如局部变量放在栈中,全局变量放在数据段中,re

问个C语言符号表的问题
一直以来对C变量的如何存储一知半解。例如局部变量放在栈中,全局变量放在数据段中,register放在寄存器中个,这个能理解。

想问的是关于C语言符号表的问题,如 int i=3 是局部变量。那么可不可以这么理解:
 i本质上是代表一个地址的,以后的代码中操作i变量的时候,实质上操作的是i代表的地址中的内容,而内存在这个地址中存放的数据是3.那么我想问的是:i本身存放在哪里,难道是不需要存放,但是这个i其实就是个符号,应该也是需要保存的。 另外是不是只有全局变量才有需要保存符号表呢,这个真不理解了。

希望大家给解答下,谢谢。 C语言
[解决办法]
变量名只是给内存空间起了一个名字,方便你使用。不要想着存放在哪里,没有意义,除非你是做编译器开发的。

如果你一定要想知道的话,就去看下编译原理吧。编译器会生成一张符号表,符号表有相关的信息,变量名对应的地址什么的。至于这张表存在哪个内存分区我也不太清楚。
[解决办法]
符号名称只是代表地址,楼主说的 i,就是代表一个地址空间。
上面几位说的对,i只是给编译器来用的,方便编程者。你如果接触过反汇编,就很容易明白这个道理。

热点排行