Новая версия платформы MetaTrader 5 build 1930: Плавающие окна графиков и .Net библиотеки в MQL5 - страница 75 1...686970717273747576777879808182...157 Новый комментарий A100 2018.12.11 19:23 #741 fxsaber: Почему предупреждение только в одном месте?Потому что предупреждение только в тех местах, где ; лишена явного смысла fxsaber 2018.12.11 19:44 #742 Компилятор MT4 умнее пятерки?#property strict void OnStart() { int r = 0; int g = 0; int b = 0; // from MT5: Canvas.mqh uint Pixel = (r<<16|g<<8|b<<0|255<<24) &0xffffffff; //check operator precedence for possible error; use parentheses to clarify precedence } MT5 ничего не сообщает. fxsaber 2018.12.11 19:47 #743 A100: Потому что предупреждение только в тех местах, где ; лишена явного смыслаПредставим, что вместо нее был Print(""); его закомментировать понадобилось, поэтому пришлось прописать пустую ;. Так что смысл имеется. A100 2018.12.11 19:59 #744 fxsaber: Представим, что вместо нее был Print(""); его закомментировать понадобилось, поэтому пришлось прописать пустую ;. Так что смысл имеется.Это не явный смысл, а скрытый - компилятор не знает что, кому и зачем понадобилось. A100 2018.12.11 20:01 #745 fxsaber: Компилятор MT4 умнее пятерки? MT5 ничего не сообщает.А зачем лишние сообщения? когда есть Приоритеты и порядок операций fxsaber 2018.12.11 20:22 #746 A100: А зачем лишние сообщения? когда есть Приоритеты и порядок операцийЭто совсем не лишние сообщения. Приоритеты есть всегда bool a = r && g || b; // check operator precedence for possible error; use parentheses to clarify precedence Компилятор уже и пятерки предупреждает о возможной ошибке. fxsaber 2018.12.11 20:25 #747 A100: Это не явный смысл, а скрытый - компилятор не знает что, кому и зачем понадобилось.Логику понял, спасибо. A100 2018.12.11 20:37 #748 fxsaber: Это совсем не лишние сообщения. Приоритеты есть всегда Компилятор уже и пятерки предупреждает о возможной ошибке.Ну тогда и здесь нужно предупредить int x = 5 + 3 * 6; //нет предупреждения А то вдруг люди неграмотные не знают что сначала умножение fxsaber 2018.12.11 20:56 #749 A100: Ну тогда и здесь нужно предупредить А то вдруг люди неграмотные не знают что сначала умножениеПредупреждают там, где наиболее вероятна (согласно среднему уровню образования и, соответственно, статистике) ошибка со стороны пользователя. Сложение с умножением имеет низкую вероятность, поэтому не предупреждается. По-вашему, и здесь не нужно делать предупреждений int d = 1.4; // truncation of constant value d *= 1.5; // possible loss of data due to type conversion ЗЫ Просьба к разработчикам привести реакции MT4 и MT5 компиляторов к единому знаменателю. Проблема при компиляции кода Советники: Popular Prices Тестирование Систем прогнозирования в A100 2018.12.11 21:24 #750 fxsaber:По-вашему, и здесь не нужно делать предупрежденийНужно, потому что здесь предупреждение не о расстановке скобок, а о потере точности\значимости. Мне кажется неестественным то, что скобками нужно подтверждать порядок\приоритет, в то время как они служат для его изменения. 1...686970717273747576777879808182...157 Новый комментарий
Почему предупреждение только в одном месте?
MT5 ничего не сообщает.
Потому что предупреждение только в тех местах, где ; лишена явного смысла
Представим, что вместо нее был Print("");
его закомментировать понадобилось, поэтому пришлось прописать пустую ;. Так что смысл имеется.
Представим, что вместо нее был Print("");
его закомментировать понадобилось, поэтому пришлось прописать пустую ;. Так что смысл имеется.
Это не явный смысл, а скрытый - компилятор не знает что, кому и зачем понадобилось.
Компилятор MT4 умнее пятерки?
MT5 ничего не сообщает.
А зачем лишние сообщения? когда есть Приоритеты и порядок операций
А зачем лишние сообщения? когда есть Приоритеты и порядок операций
Это совсем не лишние сообщения. Приоритеты есть всегда
Компилятор уже и пятерки предупреждает о возможной ошибке.
Это не явный смысл, а скрытый - компилятор не знает что, кому и зачем понадобилось.
Логику понял, спасибо.
Это совсем не лишние сообщения. Приоритеты есть всегда
Компилятор уже и пятерки предупреждает о возможной ошибке.
Ну тогда и здесь нужно предупредить
А то вдруг люди неграмотные не знают что сначала умножение
Ну тогда и здесь нужно предупредить
А то вдруг люди неграмотные не знают что сначала умножение
Предупреждают там, где наиболее вероятна (согласно среднему уровню образования и, соответственно, статистике) ошибка со стороны пользователя.
Сложение с умножением имеет низкую вероятность, поэтому не предупреждается.
По-вашему, и здесь не нужно делать предупреждений
ЗЫ Просьба к разработчикам привести реакции MT4 и MT5 компиляторов к единому знаменателю.
По-вашему, и здесь не нужно делать предупреждений
Нужно, потому что здесь предупреждение не о расстановке скобок, а о потере точности\значимости.
Мне кажется неестественным то, что скобками нужно подтверждать порядок\приоритет, в то время как они служат для его изменения.