簡體   English   中英

在C ++中將舊代碼移植到64位

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM