оператор return

 
Я заметил что когда используется return без аргумента в функциях типа int и double, то иногда функция возвращает какие-то непонятные значения... Это баг или так и должно быть? Если не баг, то что это за значения?
 
Ну мало ли что в нечищеной памяти может оказаться. То есть место под возврат предусмотрено а что возвращать не задано. Вообще-то такие вещи это просто либерализм компилятора и связан он надо полагать с повышенным процентом чайников в MQL.
 
Ну значит это можно расценивать как баг :) Поэтому нужно либо ужесточить компилятор (с обязательным требованием указания возвращаемого значения в скобках), либо тогда по умолчанию возвращать 0.
Просто ведь MQL - это и есть язык для чайников. Тут ведь не используются явные указатели на область памяти, так что появление всяких левых значений нужно устранить по идее.

А вообще тут много интересных моментов... Например функция типа bool может возвращать любые целые значения, хотя по определению ведь должна только 0 или 1. Ну здесь я имею ввиду нормальный возврат с параметром, например return(1234) -> возвращает 1234 вместо 1.
Зачем тогда спрашивается заводили такой тип функции? Это тоже можно расценивать как баг :)
 
Я думаю целью разработчиков было дать программистам подмножество языка Си с интуитивно понятными ограничениями. То есть чтобы после небольшого числа опытов человек мог более или менее уверенно предвидеть, что из Си в MQL есть, а чего нет. И, как по мне, задача была решена очень и очень неплохо. Обратная же задача не ставилась. То есть для человека собирающегося стать программистом было бы большой ошибкой начинать с MQL. Недаром разработчики неустанно повторяют: хотите программировать на MQL - изучите Си :). Я думаю абсолютное большинство людей, получающих первый опыт программирования посредством MQL, программистами быть не собираются. И зачем их зря мучить?
Причина обращения: