runewalsh
Поэтому константу, для которой критично (без)знаковое поведение, нужно явно привести к (без)знаковому типу:
Вот!!! Вот оно!!! Я даже и думать забыла, что константы тоже должны быть какого-то типа.
(Вообще-то в Дельфи, тем более $MODE DELPHI, должны быть такие же правила, скорее ...
Найдено 5 результатов
- 04.08.2020 14:38:33
- Форум: Free Pascal Compiler
- Тема: Преобразование типов при вычислении
- Ответы: 17
- Просмотры: 16443
- 04.08.2020 11:39:53
- Форум: Free Pascal Compiler
- Тема: Преобразование типов при вычислении
- Ответы: 17
- Просмотры: 16443
Re: Преобразование типов при вычислении
Снег Север
Спасибо, про Cardinal поняла, постараюсь избавиться от них в проекте.
Но замена на другой тип, к сожалению, не помогла.
Перепробовала все варианты: NativeUInt, UInt64, Int64 - все варианты приводят к ошибке.
Помогает только промежуточное присваивание временной переменной типа ...
Спасибо, про Cardinal поняла, постараюсь избавиться от них в проекте.
Но замена на другой тип, к сожалению, не помогла.
Перепробовала все варианты: NativeUInt, UInt64, Int64 - все варианты приводят к ошибке.
Помогает только промежуточное присваивание временной переменной типа ...
- 04.08.2020 10:30:50
- Форум: Free Pascal Compiler
- Тема: Преобразование типов при вычислении
- Ответы: 17
- Просмотры: 16443
Re: Преобразование типов при вычислении
Снег Север
Не поняла, почему здесь должно произойти переполнение?
WholeData: Cardinal ( = Longword): 0 .. 4294967295, т.е. от 0 до $FFFFFFFF
ReturnData0: Byte: 0..255, т.е. от 0 до $FF
При умножении даже самого большого значения типа byte $FF на $1000000, результат никогда не превысит ...
Не поняла, почему здесь должно произойти переполнение?
WholeData: Cardinal ( = Longword): 0 .. 4294967295, т.е. от 0 до $FFFFFFFF
ReturnData0: Byte: 0..255, т.е. от 0 до $FF
При умножении даже самого большого значения типа byte $FF на $1000000, результат никогда не превысит ...
- 04.08.2020 09:38:20
- Форум: Free Pascal Compiler
- Тема: Преобразование типов при вычислении
- Ответы: 17
- Просмотры: 16443
Re: Преобразование типов при вычислении
Спасибо за ответы.
Версия лазарус 2.0.6, винда, режим отладки Debug. В режиме release без ошибок.
Это перенос готового старого приложения, а не созданный заново проект. Поэтому и хотелось обойтись малой кровью.
Приведенные выше примеры я написала искусственно, чтобы проверить, почему падает ...
Версия лазарус 2.0.6, винда, режим отладки Debug. В режиме release без ошибок.
Это перенос готового старого приложения, а не созданный заново проект. Поэтому и хотелось обойтись малой кровью.
Приведенные выше примеры я написала искусственно, чтобы проверить, почему падает ...
- 03.08.2020 14:56:18
- Форум: Free Pascal Compiler
- Тема: Преобразование типов при вычислении
- Ответы: 17
- Просмотры: 16443
Преобразование типов при вычислении
Добрый день!
Занимаюсь переносом старого приложения с Delphi на Lazarus. В коде много где встречаются вычисления, в которых в качестве параметров учавствуют переменные разных типов. При вычислении и сохранении в переменную типа Cardinal приложение падает, если один из параметров byte. Падает на ...
Занимаюсь переносом старого приложения с Delphi на Lazarus. В коде много где встречаются вычисления, в которых в качестве параметров учавствуют переменные разных типов. При вычислении и сохранении в переменную типа Cardinal приложение падает, если один из параметров byte. Падает на ...
