Ошибки, баги, вопросы - страница 2890
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Ели вам нужно отловить ошибку этого значения, ну и проинициализируйте её 333 ))
Это же только стартовое значение.
все правильно, это баг. Получается или мы даем предупреждение на присвоение не инициированных переменных во всех случаях, или тогда не даем, а инициим ее дефолтно нулем например, в рамках языка во всех так же случаях.
все правильно, это баг. Получается или мы даем предупреждение на присвоение не инициированных переменных во всех случаях, или тогда не даем, а инициим ее дефолтно нулем например, в рамках языка во всех так же случаях.
Только где в вышеприведенных примерах Вы увидели такие случаи?
Только где в вышеприведенных примерах Вы увидели такие случаи?
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Ошибки, баги, вопросы
A100, 2020.10.27 16:11
Инициализировать нужно, но только осмысленным значением. В указанном примере такого значения нет, поэтому практика не плохая, единственно возможная. В противном случае была бы двойная инициализация
И где присвоение не инициированных переменных? Какая переменная не инициализирована? и кому она присваивается? То что Вы выделили: j от = слева j=, а не справа =j, т.е. она никому не присваивается до того как ей самой присвоено значение
Только где в вышеприведенных примерах Вы увидели такие случаи?
Да, погорячился, во всех случаях не иницилизированной переменной есть присвоение, а не наоборот. Возможно компилятор построчно сверху вниз идет, и тогда да, присвоение внизу, а вверху наоборот. Там же предупреждение возможно присвоение неинициинной переменной.
И где присвоение не инициированных переменных? Какая переменная не инициализирована? и кому она присваивается? То что Вы выделили j=, а не =j
Присвоение не инициализированной переменной, в теле цикла. До первой итерации j ещё не инициализирована.
Она будет инициализирована после прохода первой итерации.
Сперва выполняется тело цикла, а потом область инкремента. Которая у вас заменена на i = j
Присвоение не инициализированной переменной, в теле функции. До первой итерации j ещё не инициализирована.
Она будет инициализирована после прохода первой итерации.
Сперва выполняется тело функции, а потом область инкремента. Которая у вас заменена на i = j
Не, все правильно, не инная j на первой итерации иницилизируется как раз j=f(i) а на второй только будет i=j Думаю компилятор сверху вниз парсит и дает предупреждения.
Не, все правильно, не инная j на первой итерации иницилизируется как раз j=f(i) а на второй только будет i=j Думаю компилятор сверху вниз парсит и дает предупреждения.
Да, но до первой итерации переменная j ещё не инициализирована, на это и ругается компилятор.
Да, погорячился, во всех случаях не иницилизированной переменной есть присвоение, а не наоборот. Возможно компилятор построчно сверху вниз идет, и тогда да, присвоение внизу, а вверху наоборот. Там же предупреждение возможно присвоение неинициинной переменной.
Возможно это когда компилятор объективно не располагает информацией:
т.е. может в f() была инициализация i, а может и нет. И здесь C++ компилятор даёт предупреждение, а MQL почему то - нет
Возможно это когда компилятор объективно не располагает информацией:
т.е. может в f() была инициализация i, а может и нет. И здесь C++ компилятор даёт предупреждение, MQL нет
Не могу знать, как говорят. думаю более простой компилятор. Парсит синтаксис по верстке сверху вниз на явные синтаксич. ошибки, не соблюдение типов и на использование не инных переменных. Когда во втором примере инициализацию поставили вниз, предупреждение не выдал. Хотя исполнение программы идентично.