Здравствуйте !
На 509 билде все "гуд".
При компилиловании в ME 604 билда - ошибки и предупреждения.:not-good:
Ошибки поправте пожалуйста, если не трудно - я в основном могу для себя переделать рабочий исходник: изменить, убрать лишнее и т.п.
А по предупреждениям - я так понял, что пока можно игнорировать, но сильно раздражает. Как то привык к - "0 ошибок, 0 предупреждений.
P.S. Специально подобрал 5 простых индикаторов с типичными в МЕ 604 билда ошибками и предупреждениями - другие править по аналогии придется, я так понимаю. Пригодится многим думаю...
С уважением.
Ну, давай посмотрим.
'supertrend.mq4' supertrend.mq4 1 1
Предупреждение: variable 'var' not used supertrend.mq4
Лечение: убрать неиспользуемую переменную var
'#MTF_Supertrend.mq4' #MTF_Supertrend.mq4 1 1
Ошибка: 'return' - expressions are not allowed on a global scope #MTF_Supertrend.mq4 89 4
Смысл: return оказался вне функции
Лечение: исправить опечатку, return(0); и соседнюю фигурную скобку поменять местами.
'TMA-M.mq4' TMA-M.mq4 1 1
Ошибка: 'char' - unexpected token TMA-M.mq4 325 11
Смысл:
char теперь зарезервированное слово, нельзя использовать как имя переменной.
Лечение: заменить везде char на bukva.
Остальные ошибки - следствие первой.
'Murrey_Math_AllTF.mq4' Murrey_Math_AllTF.mq4 1 1
Предупреждение: 'void' function returns a value Murrey_Math_AllTF.mq4 219 4
Смысл: если функция имеет тип void, то оператор return не должен иметь аргументов.
Лечение: заменить return(0); на return; в двух местах.
'Divergence Petr.mq4' Divergence Petr.mq4 1 1
Ошибка: '.' - semicolon expected Divergence Petr.mq4 95 18
Смысл: точка не может быть частью имени переменной.
Лечение: заменить точку на _
Предупреждение: arrays passed by reference only Divergence Petr.mq4 1378 25
Смысл и лечение: В описании функций, получающих массив как параметр, надо ставить знак & перед именем массива и понимать, что операции будут производиться не на копии массива, а на оригинале.
Предупреждение: not all control paths return a value Divergence Petr.mq4 213 1
Смысл и лечение: каждая не-void функция должна заканчиваться оператором return.
Предупреждение: declaration of 'n' hides global declaration at line 107 Divergence Petr.mq4 505 11
Смысл: есть две одноименных переменных n, одна глобальная, другая локальная, объявленная внутри блока. Соответственно, глобальная n не видна внутри этого блока, что провоцирует разнообразные ошибки и непониманиие работы кода.
Лечение: избегать повторов, давать глобальным переменным имена только с Заглавной буквы, локальным - только со строчной.