不完全確定我的問題標題描述了我想要做什麼,但想不出如何更好地說出它!我使用的是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