Ошибки, баги, вопросы - страница 1332

[Удален]  
Alexey Navoykov:

У вас какой-то легкомысленный взгляд. Вот так просто возьми и поменяй...  Потом ещё какая-то функция добавится в коде, где локальная переменная совпадёт по имени, и опять менять, да?   Имя внешней переменной - это вам не просто набор букв, а несёт в себе конкретный смысл. Порой приходится думать, подбирая для неё лаконичное и ёмкое имя. А вы тут говорите - менять.    Да и все настройки пресетов, а также тестера и оптимизатора собьются для этого параметра при смене имени.

Поторюсь, локальный код живёт своей жизнью, и совершенно незачем подстраиваться под него.  Допустим вы вставили некую функцию откуда-то извне,  возможно её даже писали не вы, поэтому имена локальных переменных там могут быть абсолютно любые.

Делайте как считаете нужным, только очень похоже, что не писали вы больших проектов.

Мне нет смысла смотреть определения своих функций, т.к. я имею четкое разграничение в стилистике объявления глобальных и локальных имен переменных. Поэтому я и не сталкиваюсь с такими проблемами, как совпадение имен переменных глобального и локального уровня. Главное, что функции отрабатывают свою логику без коллизий. В Вашем случае есть одно большое НО, если у Вас совпадет имя глобальной переменной с именем локальной переменной, то ждите сюрпризов, разгребать которые Вы уже начали.

Как пример, ставьте в имя локальной переменной дополнительный знак _, например _iCount. В этом случае у Вас ни когда не будет проблем с именами переменных, т.к. будет выполняться то что вы мне пытаетесь уже второй раз зачем то объяснять - переменные живут в локальной зоне своей видимости, где были созданы. И ни какая глобальная переменная в этом случае не будет вносить неоднозначность в именах. И закроем на этом наш диспут.

 

Возвращаясь к своему предыдущему посту. MT4/845, Windows7/64 bit, cкрипт:

#property strict

double d1 = 2.009745110811111111111111111;
double d2 = 3.654;
double d3;
//---
void OnStart()
  {
   d3=d1/d2;
   Print("AA: d3 = ",d3);
   Print("BB: d3 = ",DoubleToString(d3));
   Print("CC: d3 = ",DoubleToString(d3,8));
   Print("DD: d3 = ",DoubleToString(d3,9));
   Print("EE: d3 = ",DoubleToString(d3,10));
}

Результат:


Администрация, допишите в DoubleToString, что эта функция округляет числа с плавающей точкой до указанной точности.

 

По хорошему не надо называть одинаково локальные и входные переменные

 
Комбинатор:

По хорошему не надо называть одинаково локальные и входные переменные

По-хорошему - да, но бывает, когда правишь чужие коды, подключаешь к ним свои библиотеки, и ... ппц ...
 

Попробуйте продолжить строку в ME в прилагаемом файле без пробелов

Файлы:
comment.mq5  1 kb
 
При обсуждении какого-либо вопроса, можно давать ссылку на продукт, находящийся в Маркете? Или это будет считаться рекламой и запрещено?
 
Yousufkhodja Sultonov:
При обсуждении какого-либо вопроса, можно давать ссылку на продукт, находящийся в Маркете? Или это будет считаться рекламой и запрещено?
У каждого продукта есть две вкладки: Обсуждение (для только думающих купить) и Отзывы (для купивших). Вот там и происходят дискуссии по продукту.
 

Сомнительный результат компиляции после оператора ? :

int f()
{
        int array[];
        return ( false ? array : array );
}
void OnStart()
{
        Print( f() );
}
// 0 error(s), 0 warning(s)
Результат: 65618 (и как он такой получился?), а должна быть ошибка при компиляции
 

Интересно, что бы это значило? Ооочень интересно. Особенно на реальном счете. Ничего не проверив, мой брокер обновился, ниже результат.

Терминал МТ4, b. 845 до обновления,
 И после обновления до b. 851 

И так во всех терминалах на всех парах.  W XP 32 bit

Что будем делать ?? Пока-что сказочная радость. За всё время существования МТ4 такая радость впервые.

Файлы:
22705.png  54 kb
22706.png  32 kb
 
Sergey Kucher:

Интересно, что бы это значило? Ооочень интересно. Особенно на реальном счете. Ничего не проверив, мой брокер обновился, ниже результат.

Терминал МТ4, b. 845 до обновления,
 И после обновления до b. 851 

И так во всех терминалах на всех парах.  W XP 32 bit

Что будем делать ?? Пока-что сказочная радость.

Необходимо больше подробностей и нужны индикаторы для воспроизведения проблемы. Напишите в сервисдеск.