Не знаю, поможет ли это вам, и это мой первый пост ... Так что расслабьтесь.
Я только что столкнулся с этой проблемой, и я добавил функцию, которая управляет структурой в файл, содержащий анонимную структуру. Таким образом, я могу вызвать эту функцию из любого файла в моем проекте, и она будет управлять значениями в структуре вместо меня.
Вот пример:
header.c имеет анонимную структуру:
struct
{
char line1[80];
char line2[80];
char line3[80];
} header;
Я хочу управлять этими значениями в «interface.c», потому что я создаю интерфейс командной строки в другом файле. Моим первым побуждением было использовать extern, но похоже, что добавление следующей функции в header.c так же хорошо или лучше (некоторые люди не рекомендуют использовать externs, если этого можно избежать).
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);
}
Теперь, пока я включаю прототип для этой функции, я могу управлять этими структурными переменными из любого файла с помощью этой функции. Надеюсь, это кому-то поможет.
person
Dugan
schedule
03.09.2014