不完全确定我的问题标题描述了我想要做什么,但想不出如何更好地说出它!我使用的是C,也许下面的伪代码将描述我想要做的事:使用变量访问一般结构成员
typedef struct obj
{
char *str1;
char *str2;
char *str3;
} object;
/* global variable */
object *glob;
void black_box_function(local, member) ????
{
/* Do something with glob->member and local->member */
}
void main()
{
object *ob1, *ob2;
/* Initialise glob, ob1 and ob2 somewhere */
black_box_function(ob1, str1);
black_box_function(ob2, str3);
}
希望,你可以看到我想要做的事。我有一个“黑盒子”功能,可以对特定的成员做某些事情,并且我需要能够告诉黑盒子功能使用哪个成员。
我不想直接将该成员直接传递给函数,就像在此代码中一样,因为这不会轻易地嵌入到其他代码中。
black_box_function(ob1->member, glob->member)
为什么不是合适? – cnicutar 2012-04-06 11:08:14
如果你的成员真的被称为'str1','str2'等(我赞赏可能只是作为例证),那么为什么不使用数组,并将索引传递给函数呢? – 2012-04-06 11:18:26
是的,例证。其实,我正在使用别人写的代码,我不能轻易改变。所以我需要坚持现有的结构定义。 – 2012-04-06 11:56:25