これがお役に立てるかどうかわかりませんが、これが私の最初の投稿です...だから、気楽に。
この問題に遭遇したばかりで、構造体を操作する関数を匿名構造体を含むファイルに追加しました。そうすれば、プロジェクト内の任意のファイルからその関数を呼び出すことができ、構造体の値を操作してくれます。
次に例を示します。
header.c には、次の匿名構造体があります。
struct
{
char line1[80];
char line2[80];
char line3[80];
} header;
別のファイルでコマンドラインインターフェイスを作成しているため、「interface.c」でこれらの値を操作したいと考えています。私の最初の本能は extern を使用することでしたが、header.c に次の関数を追加することは、同じかそれよりも優れているようです (避けられる場合は extern の使用を思いとどまらせる人もいます)。
void changeHeaders(char *one, char *two, char *three);
void changeHeaders(char *one, char *two, char *three)
{
strcpy(header.line1, one);
printf("\nHeader 1: %s", header.line1);
strcpy(header.line2, two);
printf("\nHeader 2: %s", header.line2);
strcpy(header.line3, three);
printf("\nHeader 3: %s", header.line3);
}
その関数のプロトタイプを含める限り、その関数を使用して任意のファイルからそれらの構造体変数を操作できます。それが誰かを助けることを願っています。