вопрос про #include

 
Помогите разобраться:

Решил разнести сложные процедуры по mqh.
Логично проверять их код, компилируя соответствующий файл,
где лежит процедура, отдельно.

НО! Есть общие переменные, которые в процедурах используются.
Если их также вынести в mqh и вводить в отдельные файлы
процедур, например как #include <vars.mqh>, то при компиляции
основного файла переменные оказываются объявлены
несколько раз.

Как можно решить эту проблему?

Еще есть собственные функции-утилитки, которые
также желательно вынести в mqh. Но если это сделать,
и затем вставлять в файлы процедур, например как:
#include <myfunc.mqh>, возникает та же проблема.

Можете что-то посоветовать? Или я что-то не правильно
делаю?

Заранее признателен за помощь,
Volt
 
Ага. есть тут некоторая недоработка. Хотя, в с++ тоже затруднительно скомпилировать только один файл из проекта.

Все таки мне удается хоть как то разнести функции по разным файлам и потом все компилировать. В этом смысле очень помогает использование длл. А компилировать приходится всё сразу, предварительно сохранив все компилируемые файлы.

Кстати, Очень желательно при запуске компиляции автоматически сохранять используемые файлы. Я не думаю, что всем очевидна необходимость этого сохранения :)
 
Ага. есть тут некоторая недоработка. Хотя, в с++ тоже затруднительно скомпилировать только один файл из проекта.

Тем не менее, было бы просто замечательно, если бы MetaEditor поддерживал проектную структуру как в c++.

Кстати, Очень желательно при запуске компиляции автоматически сохранять используемые файлы. Я не думаю, что всем очевидна необходимость этого сохранения :)

Это точно! Автоматическое сохранение очень даже необходимо. Иначе иногда не можешь понять почему код работает не так, как задумывалось. :)
 
Решил разнести сложные процедуры по mqh.
Логично проверять их код, компилируя соответствующий файл,
где лежит процедура, отдельно.

НО! Есть общие переменные, которые в процедурах используются.
Если их также вынести в mqh и вводить в отдельные файлы
процедур, например как #include <vars.mqh>, то при компиляции
основного файла переменные оказываются объявлены
несколько раз.

Как можно решить эту проблему?
Переменные объявляйте в одном из файлов, а потом его включайте во все остальные, где необходим доступ к переменным.
При компиляции "остальных" файлов предупреждений не будет, а при компиляции "главного" файла появится надпись типа "файл уже включен".
Но это не ошибка, а предупреждение - на работу не влияет.
И компилятор не "включает" один файл 2 раза.
Причина обращения: