Всё объявлено через #ifndef, чтобы было подключено только 1 раз, чтобы файлы .с имели доступ к объявленным переменным. Почти в каждом .c файле идёт подключение к файлу Global.h, в компиляторе XC32v2.5 всё работало отлично[/uquote]
Вообще то НЕ ДОЛЖНО было работать.
Какое отношение #ifndef имеет к ПЕРЕМЕННЫМ? Это условие К ДЕФАЙНАМ, а не к переменным.
Я канешна не великий знаток Си, но правила требуют объявления внешних к файлу глобальных переменных через extern. И никаких других способов я не знаю.
А так да, я тоже сделал аналогичный финт на XC8 года два назад (версия вроде бы 2.01), но когда решил повторить это в Кейле для АРМов, то был немедленно послан матом эррором.
ЗЫ. К вопросу о целесообразности заявленного.
Проблема с глобальными переменными лишь говорит о том, что код написан ..... (вставьте сами, чтобы не обижаться).
Глобальных переменных много быть не должно. А остальным не в падлу и extern приклеить.