Программирование для 32-битной среды против программирования для 64-битной среды / Конфигурации сборки - PullRequest
1 голос
/ 09 июня 2010

Недавно я просматривал некоторый код (пример проекта MS Visual Studio C ++) с несколькими конфигурациями сборки (Release / Debug, Win32 / x64).

Мой вопрос: в чем разница?Наверное, я понимаю Release / Debug (Release = окончательная версия проекта, Debug = версия, используемая для запуска в отладчике), но какие вещи необходимо учитывать при создании разных версий для платформ Win32 / x64?Есть ли какие-либо различия в кодировании, или это просто влияет на то, как этот же код в конечном итоге встроен в машинный код?

Я знаю, что существуют разные библиотечные файлы в зависимости от того, используете ли вы 32-разрядную или 64-разряднуюсистема также ... Все эти различия опять-таки просто машинный код?Будет ли 32-битный библиотечный файл и соответствующий ему 64-битный библиотечный файл представлять собой два файла с абсолютно одинаковыми функциями, изначально созданными из одного и того же исходного кода, и отличающимися только реализацией своего машинного кода?

Спасибо!

- Рассел

Ответы [ 2 ]

0 голосов
/ 09 июня 2010

Могут быть различия в том, как написан код, но с некоторой осторожностью большинство кода довольно легко написать, поэтому он компилируется и работает как 32-битный или 64-битный исполняемый файл.Большинство проблем возникает, когда / если вы делаете что-то вроде предположения сходства между типами Windows (например, что DWORD будет содержать указатель - true в 32-битном коде, но не в 64-битном коде).

Также обратите внимание, что на последних нескольких итерациях 32-битного компилятора было предупреждение, которое вы могли бы включить для кода, который не переносится на 64-битное выполнение (и это кажется довольно эффективным и точным).

0 голосов
/ 09 июня 2010

x32 занимает меньшую площадь. «Слова» меньше (32 бит против 64 бит). Как правило, 64-битные операционные системы являются фантастическими, поскольку они позволяют приложениям использовать более четырех гигабайт оперативной памяти. Однако, если вы не используете массивное программное обеспечение, такое как база данных, 32x обычно работает быстрее и эффективнее, особенно в 64-битных операционных системах.

...