Форум: "Начинающим";
Текущий архив: 2007.08.12;
Скачать: [xml.tar.bz2];
ВнизЧем отличаются фундаментальные типы данных от общих? Найти похожие ветки
← →
avp © (2007-07-16 17:31) [0]Чем отличаются фундаментальные типы данных от общих?
В справке Delphi написано, что формат и диапазон фундаментальных типов не зависит от ЦП и ОС, то есть это платформонезависимый тип, в отличие от общего. При использовании фундаментальных типов Delphi создает более оптимальный код.
Разъясните это, пожалуйста, желательно с примерами (вплоть до самых тонкостей).
Почему появилось такое деление и каким образом Delphi создает более оптимальный код при использовании общих типов данных?
← →
Dib@zol © (2007-07-16 17:34) [1]
> диапазон фундаментальных типов не зависит от ЦП
Правда??? А пчм тогда SIZEOF(Integer)<>SIZEOF(Int64)???
← →
MBo © (2007-07-16 20:45) [2]>При использовании фундаментальных типов Delphi создает более оптимальный код.
нет, выигрыш по скорости в некоторых случаях может быть при использовании не фундаментальных, а Generic типов (Integer, Cardinal), т.к. они родные для процессора.
← →
avp © (2007-07-16 21:34) [3]Да во второй строке перепутал, наоборот. Смотрите последнюю
← →
avp © (2007-07-16 21:40) [4]The range and format of a fundamental type is the same in all implementations of the Delphi language, regardless of the underlying CPU and operating system. The range and format of a generic type is platform-specific and could vary across different implementations. Most predefined types are fundamental, but a handful of integer, character, string, and pointer types are generic. It"s a good idea to use generic types when possible, since they provide optimal performance and portability.
То есть фундаментальные типы не зависят от ЦП и ОС, а выигрыш в скорости можно получить при использовании общих типов.
← →
Dib@zol © (2007-07-16 21:55) [5]
> regardless of the underlying CPU and operating system
Погорячились ребята...
← →
Desdechado © (2007-07-17 11:00) [6]> Погорячились ребята...
Нифига подобного. Cardinal он хоть на XP, хоть на 98, хоть на p133, хоть на Core2duo остается одним и тем же, даже на x64 AFAIK
← →
Ega23 © (2007-07-17 11:37) [7]
> Нифига подобного. Cardinal он хоть на XP, хоть на 98, хоть
> на p133, хоть на Core2duo остается одним и тем же, даже
> на x64 AFAIK
>
Да, вот только раньше он был 2 байта, нет?
Integer - тот точно был.
Где гарантия, что он не станет 8 байт через 3 года?
← →
jack128_ (2007-07-17 11:44) [8]
> Где гарантия, что он не станет 8 байт через 3 года?
Ну если мы дождемся 64битного компилера, то он 100% станет 8ми байтовым. Просто по опредлению.
← →
Ega23 © (2007-07-17 11:44) [9]Об том и реч.
А там, глядишь, и до 16 доживём. Может быть.
← →
Desdechado © (2007-07-17 11:51) [10]Это вы уже про другой тезис "горячки" говорите in all implementations of the Delphi language
← →
Anatoly Podgoretsky © (2007-07-17 14:59) [11]> Desdechado (17.07.2007 11:00:06) [6]
К Cardinal это не отношится, он же Generic и на своем веку чем только не побывал.
An integer type represents a subset of the whole numbers. The generic integer types are Integer and Cardinal; use these whenever possible, since they result in the best performance for the underlying CPU and operating system. The table below gives their ranges and storage formats for the current 32-bit Delphi compiler.
Generic integer types for 32-bit implementations of Delphi
Type Range Format
Integer -2147483648..2147483647 signed 32-bit
Cardinal 0..4294967295 unsigned 32-bit
← →
Anatoly Podgoretsky © (2007-07-17 15:00) [12]> Ega23 (17.07.2007 11:37:07) [7]
Был, и с тех пор побывал и Integer и dWord, пока не стал временно Longword
Когда он был Integer Борланд его гордо называл 31 бит беззнаковый
← →
avp © (2007-07-19 16:02) [13]А если я скомпилирую программу, с использованием типа Integer на 64-битной платформе, то он будет занимать там 64 бита?
← →
Плохиш © (2007-07-19 16:03) [14]
> avp © (19.07.07 16:02) [13]
Ды думаешь, АП буковки жирным выделял просто так?
← →
Anatoly Podgoretsky © (2007-07-19 16:20) [15]А если откомпилируешь на Д1 то будет 32 бита.
64-битной платформы пока у Борланда нет, будет и будет тебе 64 битный Интерег и возможно даже 64 битный Кардинал.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.08.12;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.054 c