Форум: "Потрепаться";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];
ВнизКак определить чего ты стоишь как программист. Найти похожие ветки
← →
Verg © (2004-04-08 06:27) [280]
> Piter © (08.04.04 00:44) [279]
> Verg (07.04.04 22:37) [277]
> корректно ли, все же, преобразовывать pointer к integer
>
> абсолютно корректно.
Но, тем не менее, сам почему-то написал longword(A), а не integer в [276].....
Думаем одно, а говорим другое?
← →
MBo © (2004-04-08 06:39) [281]>ну а почему все таки не просто GetMem
Когда ты пишешь GetMem (что удобнее программисту), компилятор подставляет вызов функции_GetMem, а в исходниках VCL разработчикам было все равно, как писать.
← →
Verg © (2004-04-08 06:42) [282]И вот еще, что....
Piter, чтобы задача не казалась для тебя абстрактной, напиши на Паскале (на Дельфи), например, реализацию ф-ции Move.
← →
Alex Konshin © (2004-04-08 06:56) [283]GetMem - процедура.
_GetMem - функция.
← →
Матлабист (2004-04-08 11:27) [284]> Alex Konshin © (08.04.04 06:56) [283]
А какая разница? Все равно CALL _GetMem. И, кстати, _GetMem использует значение EAX (размер) и устанавливает значение в EAX. Так что по сути это функция.
← →
Игорь Шевченко © (2004-04-08 11:36) [285]Матлабист (08.04.04 11:27)
Alex Konshin © (08.04.04 06:56)
Окно View|CPU нас рассудит.
В скомпилированной программе с вызовом GetMem обращение производится к процедуре _GetMem
← →
Alex Konshin © (2004-04-08 11:41) [286]А чего тут судить - я и сам это знаю. Я просто обратил внимание на разницу, которую все тут искали.
← →
Alex Konshin © (2004-04-08 12:07) [287]Кстати, если уж на то пошло, то в basm это будет выглядеть как System.@GetMem, а не _GetMem.
Я ее использовал в своих Arrays, кстати, именно в подмене NewInstance.
← →
Piter © (2004-04-08 19:46) [288]Verg (08.04.04 06:27) [280]
> абсолютно корректно.
Но, тем не менее, сам почему-то написал longword(A), а не integer в [276].....
такое очучение, что ты не читаешь другие слова. Я ж тебе сказал, что преобразование корректно! Корректное преобразование, это когда ты можешь однозначно обратно вернуть.
А вот сложение в рамках Integer не совсем корректно! Понимаешь? Об этом я и говорю. СЛОЖЕНИЕ НЕ ВСЕГДА КОРРЕКТНО
← →
Piter © (2004-04-09 19:21) [289]?
← →
kaif © (2004-04-10 00:33) [290]А как в свете сказанного происходила эволюция типов Object Pascal от одной версии Delphi до другой?
Ведь в начале (если я не ошибаюсь), под integer понималось одно, а под longint - другое? А потом это стало 4 байта. Завтра это может стать 64bit-а... Я не исключаю, что int64 и integer станут синонимами на 64-разрядной системе. Хотя пока трудно что-то сказать... То же самое касается и типа string, который вначале (я опять боюсь ошибиться) был длиной 255 символов, а в первом байте хранилась его длина. Затем string стал длиной в то, что помещается в 4 байта и в каком-то смысле совместимым с PChar. А shortstring заменил старый string.
Я, например, несколько побаиваюсь конструкций типа High(integer). Скорее всего это оттого, что я прикладной программист, а не настоящий. Но все же... Не проще ли записать
const
max_buff_size = столько-то,
чем использовать всякие High ?
-----------------
Я лично редко использую High. Возможно, я неправ.
-----------------
Если что-то переврал из истории развития типов - поправьте, но ногами не бейте. :)
← →
Игорь Шевченко © (2004-04-10 00:49) [291]
> Я не исключаю, что int64 и integer станут синонимами на
> 64-разрядной системе.
И станут. Другое дело, что если не использовать конструкции вида SizeOf(Integer) или SizeOf(переменная типа Integer), то разрядность типа Integer не должна служить причиной проблем в существующих программах.
> Я лично редко использую High. Возможно, я неправ
type
TMyColor = (mcForm, mcHeader, mcDetail, mcFocus)
var
Colors: array [TMyColor] of TColor;
I: TMyColor;
begin
for I:=Low(TMyColor) to High(TMyColor) do
Colors[I] := clWhite;
end;
По-моему, Low и High в этом примере - наилучшее решение.
← →
kaif © (2004-04-10 02:29) [292]2 Игорь Шевченко © (10.04.04 00:49) [291]
:)))
Вы - телепат. Это именно тот редкий случай (перебор перечислимых типов), где я использую High! Я сначала даже так и написал в своем постинге (кроме перечислимых типов), но потом побоялся, что заклюют и стер... Еще я иногда использую их при работе с массивами. Но размерности массивов все же определяю в обычных константах...
Страницы: 1 2 3 4 5 6 7 8 вся ветка
Форум: "Потрепаться";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];
Память: 1 MB
Время: 0.075 c