vic7tar писал(а): ↑04 Сентябрь 2018, 16:03Это уже другой интересный поворот.
Как я понимаю: здесь таже беда, что и с функцией Choose(), т.е. тип результата определяется выполняемой операцией.
Деление - всегда возвращает результат в REAL, поэтому присвоении результата в ULONG - запрещено.
Компилятор эту аксиому знает.
Тип результата умножения зависит от типа данных аргументов, и срабатывает неявное преобразование типов данных.
Таких смешных примеров в Clarion с путаницей в неявных типах данных много, например:
Код: Выделить всё
A# = 2
Message( Choose(A#, 10 / 3, 'арбуз' ) )
Последний раз редактировалось
Игорь Столяров 04 Сентябрь 2018, 18:29, всего редактировалось 1 раз.
За теми кто отстал - не возвращаться. (С) Кодекс