Особенности языка mql5, тонкости и приёмы работы - страница 248
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
А такой вариант?
Выход за пределы массива. Либо, если в Amount уже учтён (размер - 1), то никакой разницы быть не должно от этого: for (int i = Amount - 1; i >= 0; i--)
А такой вариант?
Вставьте свой вариант сюда и сравните.
Статическая переменная, объявленная внутри метода класса, является статической переменной самого класса.
результат
1
2
3
Не то, чтобы особенность. Проверил, на С++ так же. И вроде как бы логично все. Но я лично этого не знал. Поэтому по привычке в методах класса часто использовал статические переменные, делая трудноуловимые ошибки(когда объектов класса несколько).
Статическая переменная, объявленная внутри метода класса, является статической переменной самого класса.
Использую для скорости, чтобы не выделять память на каждом вызове. Не замерял, правда. Возможно, самообман.
Думаю, оправдано. Но, да интересно бы замерить. Вдруг доступ к глобальной переменной происходит дольше, чем выделение новой памяти.
Думаю, оправдано. Но, да интересно бы замерить. Вдруг доступ к глобальной переменной происходит дольше, чем выделение новой памяти.
Тут от многих факторов зависеть будет.
Отсюда вывод: не используйте static вместо local storage в вышеприведенном контексте, лучше точно не будет, а вот хуже - почти наверняка.
PS. если в том примере убрать static, то еще надо и инициализацию структуры убрать, что бы процессорное время нее не тратить, она в SymbolInfoTick будет инициализирована.
Тут от многих факторов зависеть будет.
Отсюда вывод: не используйте static вместо local storage в вышеприведенном контексте, лучше точно не будет, а вот хуже - почти наверняка.
PS. если в том примере убрать static, то еще надо и инициализацию структуры убрать, что бы процессорное время нее не тратить, она в SymbolInfoTick будет инициализирована.
Я это вполне допускаю.
Это зависит от многих факторов.
Отсюда вывод: не используйте статическое вместо локального хранилища в указанном контексте, лучше не будет, а вот хуже - почти наверняка.
PS. Если вы уберете static в этом примере, то уберете и инициализацию структуры, чтобы не тратить процессорное время, она будет инициализироваться в SymbolInfoTick.
Попробовал.
Результат.
Честно говоря, не понимаю, почему во второй строке получается ноль при отсутствии инициализации.