Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вообще надо начать с того, что глобальные переменные - зло. А уж когда такая переменная используется многих файлах и может быть изменена откуда угодно, то это зло в квадрате! Поэтому такие переменные нужно всегда объявлять константными (если только речь не идёт об вспомогательных переменных для отладочных целей, не влияющих на логику алгоритма).
Спецификатор extern нужен если проект состоит из нескольких mq5 файлов (не путать с mqh). В этом случае глобальные переменные имеет смысл объявить в отдельном файле. Если проект состоит из mqh и собирается на #include, то extern не нужен, так как, по сути, это один файл, разбитый на несколько.
пример нужен, я пробовал использовать extern в библиотеках - он не работает https://www.mql5.com/ru/forum/316795/page2#comment_12259472
пример нужен, я пробовал использовать extern в библиотеках - он не работает https://www.mql5.com/ru/forum/316795/page2#comment_12259472
Вот, во втором случае и нужен extern, что бы вводить глобальные переменные в область видимости разных файлов.
я не возражаю, но нужен пример, тут можно гадать где использовать extern - в библиотеке я попробовал, у меня не получилось, покажите как используете Вы extern
Он не для библиотек, а для проектов. Проект можно собирать либо на #include, либо делать несколько mq5 файлов. Вот, во втором случае и нужен extern, что бы вводить глобальные переменные в область видимости разных файлов.
Весь прикол в том, что extern оказался просто не нужным. Переменная, объявленная на глобальном уровне в любом файле проекта, доступна во всех его файлах. А зачем? Вопрос к создателям.
Вы можете объявить переменную extern во всех *.mqh файлах, в которых она используется.
Тогда, такие *.mqh файлы не зависят от *.mq5 (или другого *.mqh) файла, в котором объявлена глобальная переменная.
Это позволяет использовать файлы в других проектах, повышая повторное использование кода.
Вы можете объявить переменную extern во всех *.mqh файлах, в которых она используется.
Тогда, такие *.mqh файлы не зависят от *.mq5 (или другого *.mqh) файла, в котором объявлена глобальная переменная.
Это позволяет использовать файлы в других проектах, повышая повторное использование кода.
Спасибо, теперь понял логику. Я изначально думал, что он аналогичен extern в С++.
А разве не аналогичен?