c - 如何返回一个变量名并为c中返回的变量赋值

标签 c variables return assign

我想使用一个动态变量,其值会在运行时发生变化。

例如

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/

相关文章:

javascript - 如何将动态范围变量添加到angularjs中的for循环?

c# - void 类型方法表达式主体成员允许非 void 类型的表达式*如果有其他方法*

C++ 变量在 While 循环中不更新

java - 返回 null 或抛出异常

c# - 使用 if 语句返回 bool

c - 如何使用 crypt() 函数获取十六进制哈希值?

c - 在 C 中处理 POSIX - 错误消息 : Segmentation Fault (core dumped)

c - 将自定义路径添加到 gcc 命令

sql - 使用 OCI、长 SQL 语句将非常大的整数数组插入 Oracle DB

linux - 在 bash 头痛中转义变量