首頁 >後端開發 >C++ >如何將指標轉換為整數以實現 32/64 位元相容性?

如何將指標轉換為整數以實現 32/64 位元相容性?

Barbara Streisand
Barbara Streisand原創
2024-11-14 12:56:02842瀏覽

How Can I Convert a Pointer to an Integer for 32/64-Bit Compatibility?

將指標轉換為整數以實現32/64 位元相容性

在使遺留程式碼適應64 位元機器時,一個常見的挑戰是將void* 參數轉換為函數內的相容類型。為了解決這個問題,讓我們來探索一個乾淨的解決方案。

一種方法是利用現代 C 技術。例如,可以利用 uintptr_t 或 intptr_t 類型,它們被設計為表示可以保存指標值的整數值。要將指標轉換為uintptr_t,reinterpret_cast 是合適的方法:

#include <cstdint>

void *p;
std::uintptr_t i = reinterpret_cast<std::uintptr_t>(p);

此方法可確保32 位元和64 位元機器上的兼容性,允許您在函數內安全地存取和操作指標值作為整數.

以上是如何將指標轉換為整數以實現 32/64 位元相容性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn