我想使用一个动态变量,其值会在运行时发生变化。
例如
char * aVar = "ABC";
char * bVar = "DEF";
char * cVar = "XYZ";
char *dVar = NULL;
dVar = foo1();
print dVar;
foo1
内部调用 foo2
,它应该返回变量名(如 "aVar"
、"bVar"
或 “cVar”
)。 foo1
应该返回根据 foo2
的返回值命名的所述变量的值。
要获取我们可以使用(非标准)宏的变量名:
##define GET_VAR(varname) #varname;
...但是我怎样才能获得命名变量的值呢?
最佳答案
这里的简单答案是这在 C 中是不可能的。
更长的答案是,这需要语言中的内省(introspection)和动态特性,而这通常只在脚本语言(如 Python)中才能看到。即使在那里做这样的事情也不被鼓励。
我建议您重新考虑要解决的问题,并检查是否有更好的方法来解决它。也许使用数组、映射或哈希表可能是适合您的替代方法。
关于c - 如何返回一个变量名并为c中返回的变量赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12435560/