Ошибки, баги, вопросы - страница 2046
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Неконстантным выражением.
Вы ничего не путаете?
Более того, глобальные и статические переменные ведут себя абсолютно идентично. Вот из документации:
Признаюсь, для меня это было таким же открытием, как и со статическими переменными. Уж не знаю, когда это всё появилось в документации, а может и было раньше, просто никто не обращал внимания, т.к. по факту всё работало как в C++, потому вопросов не возникало.
Мне кажется что вы абсолютно заблуждаетесь. Как можно говорить об идентичности переменных, если одни доступны из всех функций, определенных в программе, а другие только в той функции в которой они объявлены.
А вот отличие статических переменных и локальных состоит в том, что статические инициализируются сразу после глобальных, а обычные локальные, (не статические) по мере выполнения программы, тогда когда до них доходит выполнение кода.
Мне кажется что вы абсолютно заблуждаетесь. Как можно говорить об идентичности переменных, если одни доступны из всех функций, определенных в программе, а другие только в той функции в которой они объявлены.
Речь шла о конкретном контексте обсуждения (инициализация переменной), а не вообще.
Отправленное сообщение появляется только после перезагрузки страницы.
На вскидку, ответ от сервера при отправке сообщения приходит адекватный, возможно что-то поплыло в обработчиках событий в js кодах.
Речь шла о конкретном контексте обсуждения (инициализация переменной), а не вообще.
На сколько я помню речь шла об инициализации СТАТИЧЕСКОЙ переменной
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Ошибки, баги, вопросы
Alexey Navoykov, 2017.10.17 17:16
Баг с инициализацией статических переменных. В старых билдах его не было.
Кому не трудно, отравьте это в сервис-деск. У меня больше нет желания общаться с ними там.
Или это не ваше сообщение?
Разберитесь уже с последовательностью инициализации переменных. В этом примере сначала инициализируется переменная глобального уровня
int a= A::f();которая вызывает функцию в которой ещё не инициализирована одноимённая переменная
и о чём вообще можно говорить если вы не обращаете внимания на предупреждения компилятора...
Правда я там размерность массива не ту поставил, может это повлияло как-то (хотя не должно никак влиять).
Попробуйте вот с размерностью = 3
Действительно, это ошибка оптимизатора компилятора, исправлено.
Исправление войдёт в следующий билд.
На сколько я помню речь шла об инициализации СТАТИЧЕСКОЙ переменной
Или это не ваше сообщение?
Не понимаю, чего вы хотите. Я ж сказал, речь шла об "инициализации переменных". И в этом контексте статические и глобальные переменные ведут себя идентично. Я вам даже ссылку давал на документацию: инициализация переменной
Обратите внимание, что статические и глобальные переменные там везде объединены вместе.
А последовательность инициализаций мы не осуждаем, ибо она не имеет отношения к рассматриваемой проблеме. Напомню, что проблема заключается в том, что компилятор НЕ выдаёт ошибку там, где должен. Если статическая переменная ещё неинициализирована, то к ней нельзя обращаться.
и о чём вообще можно говорить если вы не обращаете внимания на предупреждения компилятора...
Ну поменяйте имя глобальной переменной, если вас это так смущает. На результат это никак не повлияет.
Не понимаю, чего вы хотите. Я ж сказал, речь шла об "инициализации переменных". И в этом контексте статические и глобальные переменные ведут себя идентично. Я вам даже ссылку давал на документацию: инициализация переменной
Обратите внимание, что статические и глобальные переменные там везде объединены вместе.
А последовательность инициализаций мы не осуждаем, ибо она не имеет отношения к рассматриваемой проблеме. Напомню, что проблема заключается в том, что компилятор НЕ выдаёт ошибку там, где должен. Если статическая переменная ещё неинициализирована, то к ней нельзя обращаться.
Ну поменяйте имя глобальной переменной, если вас это так смущает. На результат это никак не повлияет.
Здрасте, приехали...Сам-то читал по этой ссылке???
Я кроме mql знаю, так-же не очень хорошо, только VBA и только там встречал директиву обязательной инициализации переменных. Заметьте, что применяется исключительно на усмотрение программиста. А вы хотите чтобы MQ принудительно заставили инициализировать абсолютно все переменные??? А последовательность инициализации менять по каждой претензии со стороны таких пользователей? Вам дали возможность отойти от правил, понимая ЧТО вы делаете, а вы просите исключить такую возможность???
Создаётся такое впечатление, что вы просто выискиваете к чему-бы придраться и охаять язык mql. Уберите static у переменной в классе и будет вам счастье.
Что происходит в момент переполнения системной переменной, которую получаем по GetTickCount() ?
Есть какая-то стандартная реакция со стороны терминала?
Есть ли необходимость программно отслеживать этот момент и внедрять реакцию?
Здрасте, приехали...Сам-то читал по этой ссылке???
Я кроме mql знаю, так-же не очень хорошо, только VBA и только там встречал директиву обязательной инициализации переменных. Заметьте, что применяется исключительно на усмотрение программиста. А вы хотите чтобы MQ принудительно заставили инициализировать абсолютно все переменные???
Ну вот в этом и кроется причина. Вы мало того, что знаете не очень хорошо (и сами уже какой раз об этом говорите), так ещё и VBA, который имеет мало общего с данным языком. А я довольно хорошо знаю C++. Это очень чёткий и строгий язык, никакие вольности там не допускаются, которые вы себе тут нафантазировали. И MQL был создан по образу и подобию C++. Так что давайте прекращать это. Ознакомьтесь с C++ для начала, тогда уже будет смысл о чём-либо спорить.
p.s. Кстати я только сейчас осознал, что вы изначально увели разговор в неправильном направлении, т.к. я уже забыл с чего всё началось, а сейчас снова увидел свой изначальный код и понял, что ваш первоначальный наезд вот здесь был вообще не по теме. И как я сразу не обратил внимания! В моём коде статическая переменная инциализируется именно константой, как и описано в документации. Так вот проблема в том, что она ни хрена не проинициализировалась. А вы мне начали грузить, что мол потому что её надо инициализировать константой. И пошло-поехало...
Почему я не могу инициализировать массив переменными?