[英]Porting Legacy code to 64 Bit in C++
我試圖將傳統的32位代碼移植到64位。 我們有一個這樣的聯盟:
union ptType
{
int * iPtr;
short * sPtr;
long * lPtr;
bool * bPtr;
double * dPtr;
};
正如您所猜測的,此聯合用於存儲所有這些類型的地址。 我已經閱讀了很多指針大小和64位算術變化。 但我不太確定這種行為。 這段代碼似乎在質量保證中起作用,但我對生產更加擔心,因為它會產生巨大的流量。
如何移植到64位會影響代碼的行為?
你說得對,在大多數32到64位轉換下,這些指針的大小都會加倍。 這個聯合本身的操作不太可能是一個問題,但你必須通過類型轉換,硬編碼大小等來尋找與其他代碼交互的地方。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.