[英]identifying structure members dynamically
有什么可能的方法在运行时检查结构成员?
例如,考虑以下代码,
#include <stdio.h>
struct example{
int value;
char name[32];
int score;
};
int main()
{
char in[256]={};
printf("enter member name :\n");
scanf("%s",in);
if(check_member(in) == 1) {
printf("struct example has member %s \n,in);
return 0;
}
printf("struct example has no member named %s \n,in);
return -1;
}
如果我向该程序输入value
,则应打印
结构示例具有成员价值
当我输入test
到该程序时,它应该打印
struct示例没有名为test的成员
有没有可能编写函数check_member()
?
这是不可能的,因为在编译之后,变量的名称不会仅保存在堆栈的内存中,因此无法在运行时获取数据。 当然,正如@Yunnosch所说,您可以将成员的名称保存为字符串,然后使用strcmp。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.