Знакомство с паттернами 64-битных ошибок закончено, и возможно у вас возникло желание на практике поэкспериментировать с опасными конструкциями и попробовать PVS-Studio для их обнаружения. Удовлетворить свой интерес вы можете, установив демонстрационный проект PortSample, входящий в состав PVS-Studio (рисунок 1).
Сам по себе рост размера структур не является ошибкой, но может приводить к потреблению необоснованного количества памяти и в результате к замедлению скорости работы программы. Будем рассматривать данный паттерн не как ошибку, но как причину неэффективности 64-битного кода.
При переносе 32-битных программ на 64-битную платформу может наблюдаться изменение логики ее работы, связанное с использованием перегруженных функций. Если функция перекрыта для 32-битных и 64-битных значений, то обращение к ней с аргументом типа memsize будет транслироваться в различные вызовы на различных системах.
Процессоры работают эффективнее, когда имеют дело с правильно выровненными данными. А некоторые процессоры вообще не умеют работать с не выровненными данными. Попытка работать с не выровненными данными на процессорах IA-64 (Itanium), как показано в следующем примере, приведет к возникновению исключения:
Генерирование и обработка исключений с участием целочисленных типов не является хорошей практикой программирования на языке Си++.
|
Программирование для чайников.
|