Уроки разработки 64-битных приложений на языке Си/Си++

Мы регулярно пишем статьи посвященные разработке и тестированию 64-битных программ на языке Си/Си++. Каждая из статей представляет взгляд на задачу разработки 64-битных программ с разных точек зрения. Но существенная часть информации в них повторяется, так как необходимо знакомить читателя с проблематикой и вводить различные определения. Это, к сожалению, делает чтение подборки статей скучным занятием и соответственно не позволяет всесторонне изучить вопросы разработки 64-битных приложений.

Мы решили объединить все наши знания в единый труд, в котором будут рассмотрены сразу все вопросы, касающиеся 64-битного программирования. Для оформления в виде статьи материала оказалась слишком много и мы решили представить его в виде курса уроков.

Кратко опишу курс "Уроки разработки 64-битных приложений на языке Си/Си++" и приведу его содержание.

Курс посвящен созданию 64-битных приложений на языке Си/Си++ и ориентирован на разработчиков, использующих среду Visual Studio 2005/2008. Разработчики для других 64-битных операционных систем также узнают много интересного. В курсе будут рассмотрены все этапы, позволяющие создать новое надежное 64-битное приложение или выполнить миграцию существующего 32-битного кода на 64-битную систему.

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

Авторами курса являюсь я (к.ф.-м.н. Карпов Андрей Николаевич) и к.т.н. Рыжков Евгений Александрович. Соответственно мы готовы обсуждать здесь этот курс, давать пояснения, исправлять замеченные недочеты, учитывать ваше мнение.

Содержание курса:

  • Урок 01. Что такое 64-битные системы.

  • Урок 02. Поддержка 32-битных приложений.

  • Урок 03. Перенос кода на 64-битные системы. За и против.

  • Урок 04. Создание 64-битной конфигурации.

  • Урок 05. Сборка 64-битного приложения.

  • Урок 06. Ошибки в 64-битном коде.

  • Урок 07. Проблемы выявления 64-битных ошибок.

  • Урок 08. Статический анализ для выявления 64-битных ошибок.

  • Урок 09. Паттерн 01. Магические числа.

  • Урок 10. Паттерн 02. Функции с переменным количеством аргументов.

  • Урок 11. Паттерн 03. Операции сдвига.

  • Урок 12. Паттерн 04. Виртуальные функции.

  • Урок 13. Паттерн 05. Адресная арифметика.

  • Урок 14. Паттерн 06. Изменение типа массива.

  • Урок 15. Паттерн 07. Упаковка указателей.

  • Урок 16. Паттерн 08. Memsize-типы в объединениях.

  • Урок 17. Паттерн 09. Смешанная арифметика.

  • Урок 18. Паттерн 10. Хранение в double целочисленных значений.

  • Урок 19. Паттерн 11. Сериализация и обмен данными.

  • Урок 20. Паттерн 12. Исключения.

  • Урок 21. Паттерн 13. Выравнивание данных.

  • Урок 22. Паттерн 14. Перегруженные функции.

  • Урок 23. Паттерн 15. Рост размеров структур.

  • Урок 24. Фантомные ошибки.

  • Урок 25. Практическое знакомство с паттернами 64-битных ошибок.

  • Урок 26. Оптимизация 64-битных программ.

  • Урок 27. Особенности создания инсталляторов для 64-битного окружения.

  • Урок 28. Оценка стоимости процесса 64-битной миграции Си/Си++ приложений.

Einzelheiten zur Compiler-Optimierung finden Sie in unserem Optimierungshinweis.