当前位置:  开发笔记 > 编程语言 > 正文

在C中查找变量的名称

如何解决《在C中查找变量的名称》经验,为你挑选了4个好方法。

昨晚我被问到C中的一个问题我不知道答案,因为自从大学以来我没有使用过C,所以我想也许我可以在这里找到答案而不是忘记它.

如果一个人有如下定义:

#define count 1

那个人可以count使用里面的1 找到变量名吗?

我不这么认为,因为我认为计数会指向1,但是不知道1如何能指回计数.



1> user7116..:

在@Cade Roux的答案的基础上,如果使用预处理器#define将值与符号关联,则在预处理器运行后,代码将不会对该符号进行任何引用:

#define COUNT (1)
...
int myVar = COUNT;
...

预处理器运行后:

...
int myVar = (1);
...

正如其他人所指出的那样,由于上述原因,这基本上意味着"不".



2> robintw..:

简单的答案是不,他们不能.这样的#Defines由预处理器处理,它们只指向一个方向.当然另一个问题是即使编译器也不会知道 - 因为"1"可能指向任何东西 - 多个变量可以同时具有相同的值.



3> finalman..:

那个人可以使用里面的1找到变量名"count"吗?

没有



4> Henry B..:

因为我确信比我更有说服力和精通的人会指出#define'd事情没有编译到源代码中,你所拥有的是一个预处理器宏,它将通过源代码并更改所有'count'实例'它找到'1'.

但是,为了更好地了解您被问到的问题,因为C是一种编译语言,直到机器代码,您将永远不会使用Java或C#等语言进行反思和内省.编译后所有命名都会丢失,除非你有一个围绕源/编译器构建的框架来做一些漂亮的东西.

希望这有帮助.(原谅双关语)

推荐阅读
ERIK又
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有