將程式碼移轉到 64 位元電腦時,有必要解決與指標轉換相關的問題。在具有void 參數的函數中,如果參數在函數內轉換為適當的類型,則可能會出現以下錯誤:「從'void' 轉換為'int' 會遺失精確度。」
為了解決此問題並確保跨32 位元和64 位元機器的相容性,建議使用以下C 11 方法:
std::uintptr_t 類型專門設計用於表示指標值和地址。使用reinterpret_cast 可確保 void* 指標和整數表示之間的安全且明確的轉換。
C 11(及更高版本)版本:
C 03 版本:
C99 版本:
需要注意的是,雖然uintptr_t提供了一種將指標值儲存為整數的安全方法,但它不一定在所有情況下都與整數的大小對齊。因此,建議使用適當的類型來儲存和操作整數值。
以上是如何在現代 C 中安全地將指標轉換為整數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!