Поддерживается ли Int64 во всех версиях Windows? - PullRequest
2 голосов
/ 10 декабря 2011

Если я использую переменную типа Int64, будет ли она работать на всех версиях Windows: win95, 98, 2000, nt, xp, vista, win7? Неважно, какая ОС это 32-битная или 64-битная? И неважно, какой процессор они используют?

Я просто хочу быть уверен, что моя программа будет работать на всех версиях Windows.

Ответы [ 3 ]

9 голосов
/ 10 декабря 2011

Размер типов данных, предоставляемых языком, не ограничен операционной системой или аппаратной платформой. У меня могут быть 64-разрядные целые числа на 32-разрядных платформах (или 16-, 8- или 11-разрядных, если на то пошло).

5 голосов
/ 10 декабря 2011

Int64 переменные поддерживаются 32-битным компилятором Delphi. Все операции с операндами Int64 будут давать идентичные результаты независимо от того, на какой платформе (машине, ОС и т. Д.) Выполняется код.

На 32-битных платформах компилятор должен использовать специальные процедуры для выполнения 64-битной арифметики с использованием доступных 32-битных машинных инструкций. При назначении 64-битной машины компилятор может использовать собственные 64-битные инструкции. Неважно, конечный результат для вас неразличим.

Обратите внимание, что если вы выполняете 32-битный исполняемый файл Delphi в 64-битной ОС, вы все равно будете использовать 32-битный эмулятор, например, WOW64. С точки зрения исполняемого файла, вы работаете на 32-битной машине. Если вы не используете новый 64-битный компилятор, представленный в XE2, вы будете создавать 32-битные исполняемые файлы.

2 голосов
/ 10 декабря 2011

64-битные целые числа будут отлично работать в 32-битной операционной системе. Прирост производительности при использовании этих типов данных, однако, будет достигнут только при использовании кода, скомпилированного для 64-битной операционной системы - для этого вам потребуется Delphi XE2.

Между тем у вас есть преимущества: дополнительная емкость данных, но не дополнительная скорость выполнения (хотя для большинства приложений это обычно не учитывается).

...