簡體   English   中英

如何將自定義類指針轉換為unsigned int

[英]How to convert custom class pointer to unsigned int

我需要將類型轉換自定義類指針鍵入unsigned int值。 這就是我的累。

Class A{
};

int main()
{
A* a = foo();
unsigned int handler = reinterpret_cast<unsigned int>(a);
return 0;
}

它給出警告warning C4302: 'reinterpret_cast': truncation from 'A *' to 'unsigned int'

用C ++方式克服此問題的正確方法是什么

該錯誤可能意味着您正在編譯到64位目標,在這種情況下,指針是64位,將reinterpret_cast'd轉換為int意味着被截斷(因為int最多為32位)。

不確定要使用該處理程序做什么,但是更安全的方法是在c ++ 11可用的情況下強制轉換為uintptr_t。

http://en.cppreference.com/w/cpp/types/integer

包含<cstdint> ,應該是這樣,

uintptr_t handler = reinterpret_cast<uintptr_t>(a);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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