C语言标识符的存储问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言标识符的存储问题相关的知识,希望对你有一定的参考价值。

例如:话说定义了int num这个变量,计算机会在内存中分配一块地址用于存储num的内容。我想问一下,那么num这个名字是被存在哪里,如何存储?num这个标识符和num的地址之间如何被联系和工作的?求高手解答。

这个详细的要看编译原理了,你可以找相关资料来看。大体是这样的一个过程(以win下的编译过程说明):
1. 编写C源文件。这时候你定义了变量 num
2. 编译源文件成为中间 obj 文件,obj文件有符号表,记录符号和地址的对应关系
3. 链接中间文件生成可执行文件 exe 文件,将符号用地址替换掉

可见,最初源文件只有符号,然后编译后有符号和地址的对应,最后只有地址了,没有符号。
参考技术A 不需要存储变量的名字

以上是关于C语言标识符的存储问题的主要内容,如果未能解决你的问题,请参考以下文章

c语言中操作符和标识符都有哪些区别和联系

C 语言变量本质 ( 变量概念 | 变量本质 - 内存空间别名 | 变量存储位置 - 代码区 | 变量三要素 )

C语言中new的用法

C基础

c语言的变量定义

C语言问题:标识符为啥不能使用关键字?