[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Объявление глобальных переменных в c.



Доброго времени суток!

Извеняюсь за оффтоп, но больше спросить негде.

Проблема в следующем:
Один кусок программы пишется в файле client.c
Для коммуникации в локальной сети к нему посредством 

#include "network.h"

привязывается библиотека. В ней должна быть переменная int PORT.
Если я сейчас объявляю в client.c 

extern int PORT;

То линкер выплёвывает ошибку на манер - дважды декларированная
переменная. То же самое происходит если в client.c это объявление не
писать. Я так понимаю это мотому, что network.h дважды включается
сначала в network.c и потом в client.c... Применение ifndef не
помогло.  Если прописать переменную в network.c а не в network.h то
всё работает.  Но по идее при написании client.c, network.c вовсе не
обязан быть доступным, соответсвенно программер не может посмотреть
какие переменные есть в network.c...

Это можно как-нибудь побороть ? Т.е. декларировать переменню в network.h
и чтобы линкер не плевался ?

Заранее благодарен

Владимир.

Attachment: signature.asc
Description: Digital signature


Reply to: