私の質問タイトルは私が何をしたいのかを完全には必ずしも明らかにしていませんが、私は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
あなたのメンバーが実際に 'str1'、' str2'などと呼ばれている場合(私はちょうどイラストレーションになるかもしれません)、なぜ配列を使用せず、関数にインデックスを渡すのですか? –
はい、イラスト。実際には、他の人が書いたコードを使って、簡単に変更できないコードを使用しています。だから私は現在存在する構造体定義に固執する必要があります。 –