Сам пишу на Delphi, но одно время пришлось по граблям пройтись.
global.h
В нём описания типов структур.
global.c
В нём реальные объявления, возможно с инициализацией.
Чтобы другие файлы могли видеть переменные, описанные в
global.c, надо в
global.h повторить эти же самые описания, что и в
global.c, но со словом
extern.
А потом уже в любом модуле подключать
global.h и пользоваться переменными.
‹global.h ›
Код:
|
struct s_read {
unsigned char inet_status;
unsigned char client_status;
};
extern struct s_read *reader; |
‹global.с ›
Код:
|
struct s_read *reader; |
‹ethernet.c›
Код:
|
#include "global.h"
reader[1].inet_status=5; |
‹client.c›
Код:
|
#include "global.h"
if (reader[1].inet_status==5) reader[1].client_status=2; |
P.S. там ещё надо include "global.c" в файл
global.h прописать или наоборот.
P.P.S. Если делать неправильно, можно напороться на такую шнягу, что в каждом модуле будут создаваться локальные копии глобальных переменных. Долго будете гадать, откуда ноги растут...
P.P.P.S А зачем индекс у
reader???