Я заметил что когда используется return без аргумента в функциях типа int и double, то иногда функция возвращает какие-то непонятные значения... Это баг или так и должно быть? Если не баг, то что это за значения?
- Jobless Claims (Initial Claims) - США - Фундаментальный анализ - Графики котировок, технический и фундаментальный анализ
- Немедленное исполнение - Открытие и закрытие позиций - Торговля - MetaTrader 5 для Android
- Fractal Adaptive Moving Average - Трендовые индикаторы - Использование технических индикаторов - Графики котировок, технический и фундаментальный анализ
Ну мало ли что в нечищеной памяти может оказаться. То есть место под возврат предусмотрено а что возвращать не задано. Вообще-то такие вещи это просто либерализм компилятора и связан он надо полагать с повышенным процентом чайников в MQL.
Ну значит это можно расценивать как баг :) Поэтому нужно либо ужесточить компилятор (с обязательным требованием указания возвращаемого значения в скобках), либо тогда по умолчанию возвращать 0.
Просто ведь MQL - это и есть язык для чайников. Тут ведь не используются явные указатели на область памяти, так что появление всяких левых значений нужно устранить по идее.
А вообще тут много интересных моментов... Например функция типа bool может возвращать любые целые значения, хотя по определению ведь должна только 0 или 1. Ну здесь я имею ввиду нормальный возврат с параметром, например return(1234) -> возвращает 1234 вместо 1.
Зачем тогда спрашивается заводили такой тип функции? Это тоже можно расценивать как баг :)
Просто ведь MQL - это и есть язык для чайников. Тут ведь не используются явные указатели на область памяти, так что появление всяких левых значений нужно устранить по идее.
А вообще тут много интересных моментов... Например функция типа bool может возвращать любые целые значения, хотя по определению ведь должна только 0 или 1. Ну здесь я имею ввиду нормальный возврат с параметром, например return(1234) -> возвращает 1234 вместо 1.
Зачем тогда спрашивается заводили такой тип функции? Это тоже можно расценивать как баг :)
Я думаю целью разработчиков было дать программистам подмножество языка Си с интуитивно понятными ограничениями. То есть чтобы после небольшого числа опытов человек мог более или менее уверенно предвидеть, что из Си в MQL есть, а чего нет. И, как по мне, задача была решена очень и очень неплохо. Обратная же задача не ставилась. То есть для человека собирающегося стать программистом было бы большой ошибкой начинать с MQL. Недаром разработчики неустанно повторяют: хотите программировать на MQL - изучите Си :). Я думаю абсолютное большинство людей, получающих первый опыт программирования посредством MQL, программистами быть не собираются. И зачем их зря мучить?

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь