169 похожих чатов

Кто-То может объяснить логику Delphi: Вот так не работает, пишет, что

нет overloaded функции

function GetVal(var AVal: Int64): Boolean;

var Val: UInt32;
GetVal(Int64(Val));

А вот так работает:

function GetVal(var AVal: Integer): Boolean;

var
Val: UInt32;
GetVal(Integer(Val));

Это из-за разной разрядности?

22 ответов

70 просмотров

Видимо да, из-за разного размера

разный размер переменных. мне, к слову, другое пишет: [dcc32 Error] Unit15.pas(36): E2197 Constant object cannot be passed as var parameter

Чо, так можно приводить? Не верю)

Катерина Свиридова
Чо, так можно приводить? Не верю)

приводить можно. но такая фигня получается (ц) анекдот

Alex-Egorov Автор вопроса

Типы разные, а при var - типы должны быть идентичные.

Alexander 👋
Типы разные, а при var - типы должны быть идентичн...

необязательно, на самом деле, но конкретно тут язык отказывается приводить к типу другого размера

Igor
необязательно, на самом деле, но конкретно тут язы...

Основы Паскаля и статической типизации

Alexander 👋
Основы Паскаля и статической типизации

вот этот код работает прямо сейчас: var currSubnet, commonSubnet: Cardinal; ... if subnets.FindFirst(Integer(currSubnet), dummy) then repeat у FindFirst оба параметра передаются по ссылке

Alex-Egorov Автор вопроса
Alexander 👋
Основы Паскаля и статической типизации

Главное понимать, что делаешь и какие могут быть подводные камни

Alexander 👋
Не правильно это

почему нет? если автор кода так видит

Handatros
почему нет? если автор кода так видит

Это говнокод: могут возникнуть проблемы с безопасностью кода. Но если автор так видит, автору решать.

Alexander 👋
Это говнокод: могут возникнуть проблемы с безопасн...

бывают случаи что не говнокод. и вот так бывает не говнокод, хотя можно расписать лучше: function TMedicalFile.Read64Float(SeekTo: integer; NeedSwap: boolean): double; var Temp: int64 absolute Result;

Handatros
бывают случаи что не говнокод. и вот так бывает не...

Бывают, но @rouse_79 раскритиковал такой код. Хотя такой вариант по мне норм.

Alexander 👋
Бывают, но @rouse_79 раскритиковал такой код. Хотя...

угу, он лучше решение приводил. но мне в целом норм и так

Alexander 👋
Бывают, но @rouse_79 раскритиковал такой код. Хотя...

Я не критиковал, а разьяснял что это может применяться только в тех случаях для которых оно и было задумано, а именно для обхода ограничений языка. А таковых случаев на практике мне встречался только один, во всех других достаточно было адресной арифметики.

В декларации знаковое 64-битное целое, при вызове пытаешься передать беззнаковое 32-битное. Очевидно, компилеру нужно указать явное приведение и показать, что ты понимаешь, что делаешь. P.S. Т.е. логика такая: приводишь к 32-разрядному Integer, а он уже совместим по типу с Int64

Alex-Egorov Автор вопроса
Vitaly
В декларации знаковое 64-битное целое, при вызове ...

Не пропускает и при приведении к Integer

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта