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

Rosh:

Там добавилось еще одно значение:

Да, у меня январский Справочник.
Yedelkin:

А вот эти константы не подойдут?

Да, самое оно! Danke schön!
mql5:
Да, Вы правы, ошибка компилятора, исправим.

Ух ты!  // А я думал сделаете чтоб компилятор ошибку выдавал.

Спасибо, если такой синтаксис заработает, будет прекрасно.

--

Вообще вам всем - большое спасибо. Язык расцветает на глазах. Мелкие недочеты и ложки дёгтя, думаю, явление временное. 

void der()
{
  int app;
  for(int i=0;i<100;i++)
  {app++;}
  Print("app=",app);
}
void OnInit()
{
EventKillTimer();
EventSetTimer(1000);
}
void OnTick()
{
}
void OnTimer()
{
der();
}

На выходе 

2011.07.28 19:53:20 app=2439.

2011.07.28 20:10:00 app=2139.

2011.07.28 20:26:40 app=2239.

int app; -  автоматом 0 не должен присваивать?

sion:

int app; -  автоматом 0 не должен присваивать?

Нет. Нужно инициализировать самостоятельно.
joo:
Нет. Нужно инициализировать самостоятельно.
Тяжковато начинающим, когда неизвестные цифры начинают вылазить) А смысл в этом есть, если app в глобальные переменные вывести вроде проблем нету.
Документация по MQL5: Основы языка / Переменные / Глобальные переменные
Документация по MQL5: Основы языка / Переменные / Глобальные переменные
  • www.mql5.com
Основы языка / Переменные / Глобальные переменные - Документация по MQL5
sion:
Тяжковато начинающим, когда неизвестные цифры начинают вылазить) А смысл в этом есть, если app в глобальные переменные вывести вроде проблем нету.

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

;-)

Смысл в этом есть - на инициализацию уходит время.

Если пользователю время важно, а инициализация при объявлении не нужна (и так присвоится в нужное время нужное значение), то сверхзаботливый  компилятор может зазря тратить время на инициализацию. Поэтому общепринятая практика во всех серьёзных языках - инициализация на усмотрение программиста.  Что есть хорошо и  правильно. Просто привыкайте.

Гарантированные нули только в головах у начинающих..  :)   // люблю осмысленные двусмысленности.

;)

Почему Print(1/2); пишет 0 ?   Округляет до целого?
fellow:
Почему Print(1/2); пишет 0 ? 

Потамушта!

Надо так, если ненавидите вещественные числа:

Print((double)1/(double)2);
MetaDriver:

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

Из справки. Область видимости глобальных переменных - вся программа, глобальные переменные доступны из всех функций, определенных в программе. Инициализируются нулем, если явно не задано другое начальное значение.

После опыта работы с глобальными переменными и появляются такие ошибки.

P.S. Видимо у Вас накипело, от глупых вопросов начинающих, так яростно по этому поводу отписываете.  Именно компилятору, помоему пофигу, какой по объему код, лишняя инициализации лишь на долю секунды притормозит его, а на тестере стратегий уже другое дело.

Документация по MQL5: Основы языка / Переменные / Глобальные переменные
Документация по MQL5: Основы языка / Переменные / Глобальные переменные
  • www.mql5.com
Основы языка / Переменные / Глобальные переменные - Документация по MQL5