搜遍网络没找到提取struct里属性信息的方法。
例如:
struct Data
{
int a;
char mess[10];
double c;
};
我需要做的事情是,获得struct的名字,就可以获得它里面的属性名字和属性类型,并可以对该变量根据属性名字和类型,取值和赋值。 例如:
struct Data c;
c.a = 10;
strcpy(c.mess,"aaa");
c.c = 2.5;
setdata("this_data",&c);
然后就可以用类似办法赋值:
set_value("this_data.c",2.5);
double d = get_double_value("this_data.c");
printf("this_data.c=%fn",d);
同志们有什么办法不?
是在运行期间动态识别。
我目前采取的方法是手工写代码,把所有相关的struct的属性名称、类型和偏移量联系起来存储到一个结构体里。
但是不知道有没有更好的,自动化的办法,像是读类的meta信息一样方便的取得struct里的信息。