- 论坛徽章:
- 0
|
本帖最后由 caohui8666 于 2011-01-30 18:31 编辑
先用例子说明我想问的问题:
typedef struct{
int aaa;
int bbb;
int ccc;
}test_stu;
int _fun(test_stu *_test, char *_str)
{
/*从结构体_test中得到编码名称为_str的成员的取值*/
return 0;
}
int main()
{
test_stu test;
memset(&test, 0, sizeof(test_stu ));
test.aaa = 111;
test.bbb = 222;
test.ccc = 333;
int result = _fun(&test, "aaa");
printf("result[%d]\n", result);
return 0;
}
总体描述的意思是,一个结构体(这个结构体成员的个数有可能还会增加,比如再增加一个int ddd),需要一个函数,给这个函数输入这个结构体的成员的变量名称,就能返回这个成员的取值。
如何实现?请求高手指导,在线等。
另外补充一点,offsetof是一个宏函数,第二个参数是成员的明细,不能是一个变量,无法最终实现需求。
我需要传给_fun函数一个字符串变量,变量值为“aaa”,然后返回aaa的取值即111;输入“bbb”,返回222;而不能写死的offsetof(test_stu , aaa). |
|