Я пытаюсь перенести устаревший 32-битный код на 64-битный. В этом у нас есть такой союз:
union ptType
{
int * iPtr;
short * sPtr;
long * lPtr;
bool * bPtr;
double * dPtr;
};
Как вы можете догадаться, этот союз используется для хранения адресов всех этих типов. Я читал о большом размере указателя и изменении арифметики в 64-битной версии. Но я не слишком уверен в этом поведении. Этот код, кажется, работает в QA, но я более обеспокоен производством, так как там будет огромный трафик.
Как повлияет портирование на 64 бита на поведение кода?
Вы правы, что при большинстве 32-64-битных переходов эти указатели будут удваиваться в размерах. Работа самого этого объединения вряд ли будет проблемой, но вам придется искать места, где он взаимодействует с другим кодом, через типы типов, жестко заданные размеры и т. Д.
Других решений пока нет …