ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
23 ноября
1331631 Топик полностью
Tyмблep (17.07.2023 18:00, просмотров: 124) ответил mse homjak на Если вы посмотрите на файлы прожэкта, то увидите, что ваш пример принцыпиально отличается от моего и в таком варианте у меня проблем нет. Если использовать в SomeRoutine() переменную XX_MM, то, по идее, огребёте как и я. Например, таким образом:
Нет, это не так. 

Глобальные переменные должны быть объявлены в одном модуле

(как у меня).

А другие модули должны получить к ним доступ

посредством "extern".

Что я и делаю.

А вы зациклились на каком-то странном варианте исходного текста

на который компилятор и должен ругаться. Он это и делает.

---

Есть ещё вторая составляющая - чем более компилер новый, тем

более придирчиво он рассматривает исходники на предмет ошибок.

Поэтому старый проект с новым компилятором не всегда собирается без редакции.

---

И главная беда использования глобальных переменных в том, что

можно сделать так:

модуль main.c:

int a;

int b;

int c;


модуль mod1.c:

extern int a;

extern char b;

extern int c;


Если модулей и переменных много и переменные бессистемно рассыпаны по проекту

такую ошибку, возможно, никогда не найдёшь. Поэтому лучше все глобальные

переменные (если уж они есть) сосредоточить в одном файле.