Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.047 c
3-1177487237
RA
2007-04-25 11:47
2007.08.12
нужно сбросить закешированные записи в базу


8-1162937258
константинов
2006-11-08 01:07
2007.08.12
Воспроизведение звукового потока ( напрямую, мимо DirectX )


11-1166446345
AndreyRus
2006-12-18 15:52
2007.08.12
Ошибка обработчика события OnDestroy


2-1184298375
Интересующийся
2007-07-13 07:46
2007.08.12
Защита программы


11-1167918954
First
2007-01-04 16:55
2007.08.12
Уничтожение таймера в OnTimer.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский