Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Глобальные объекты, инициализируются конструктором по умолчанию. Для примитивных (в нашем случае все, кроме string) типов - это 0. А вот для памяти (читай переменных), выделенной на стеке, инициализация не производится. Поэтому, глобальные переменные можно не инициализировать, помним, что в этом случае они будут равны нулю. А вот отсутствие инициализации (заодно, сразу приучайтесь не допускать предупреждений компилятора, если, конечно, четко не знаете, что делаете) - это уже серьезнее, так как чтение не инициализированной переменной приводит к неопределенному поведению. Например, этот код по разному себя ведет в релизной и дебаг сборке и никто не даст гарантии, что при смене версии компилятора или настроек оптимизации не изменится и его поведение:
Здравствуйте, Владимир! Спасибо за разъяснение.
С уважением, Владимир.
Петер, а вот по поводу глобальных переменных пока не нашёл в литературе, что глобальные переменные нужно заранее предопределять. У вас есть ссылка на источник, чтобы повысить свои знания в этом вопросе? В Справочнике MQL5 нет явного указания про инициализацию, вот выдержка из него:
Тип bool предназначен для хранения логических значений true (истина) или false (ложь), числовое представление которых 1 или 0 соответственно.
Примеры:
bool a = true;
bool b = false;
bool c = 1;
Внутреннее представление – целое число размером 1 байт. Необходимо отметить, что в логических выражениях допустимо использовать вместо типа bool другие целые или вещественные типы или выражения этих типов, компилятор не выдаст ошибки. В таком случае значение ноль будет интерпретировано как false, а все остальные значения как true.
Дописал в коде скрипта:
Теперь нужно в комментариях скрипта, как-то четко прописать для ученика 1-го класса школы программирования, почему предопределённое значение для типа данных bool должно быть именно false, а не true.
С уважением, Владимир.
Дописал в коде скрипта:
С уважением, Владимир.
Продолжаю изучение языка программирования MQL5 и выкладываю код скрипта, который является продолжением выполнения одного задания со стороны участников данной темы. Скрипт проверил на всех режимах. Проблемы не выявлены. Для начала применил минимальное количество входных параметров. Код скрипта написан на английском языке, а комментарии к коду на русском языке, чтобы облегчить усвоение материала. В данном скрипте постарался всё расписать, как ранее и обещал, в изложении доступном для ученика 1-го класса школы программирования.
С уважением, Владимир.
Владимир, так писать нельзя. Не замыкайте работу функций на внешних переменных. Единственное исключение пока для Вас, это взятие значений из input переменных.
Здравствуйте, Василий! Честно говоря, не совсем понял смысл того, что выделено жирным шрифтом. Прошу, пожалуйста, объясните подробнее, что Вы хотели этим сказать.
С уважением, Владимир.
Здравствуйте, Василий! Честно говоря, не совсем понял смысл того написанного, что выделено жирным шрифтом. Прошу, пожалуйста, объясните подробнее, что Вы хотели этим сказать.
С уважением, Владимир.
Не используйте глобальные переменные. Почему их нельзя использовать я напишу позже.
Есть хороший анекдот на эту тему:
- Вопрос: какой самый оптимальный тип для глобальной переменной в с++?
- Ответ: //
Не используйте глобальные переменные. Почему их нельзя использовать я напишу позже.
Теперь понятно. Спасибо, буду ждать от Вас ответа, почему нельзя использовать глобальные переменные.
С уважением, Владимир.