將指標轉換為整數
在需要將void* 參數轉換為合適的類型的情況下,至關重要的是確保不同機器架構之間的相容性。
在 64 位元機器上,將 void* 轉換為int 可能會導致精確度損失。為了解決這個問題,現代 C 方法涉及使用reinterpret_cast<:uintptr_t>。這確保了可移植且高效的轉換。
正確的整數類型:
要將指標正確儲存為整數,適當的型別是uintptr_t 或intptr_t,在< 中定義;stdint.h>對於C99或C 11 的std 命名空間。
正確的轉換運算子:
在 C 中,reinterpret_cast 是指標轉換的首選轉換。避免使用 C 類型。範例:
#include <cstdint> void *p; std::uintptr_t i = reinterpret_cast<std::uintptr_t>(p);
相關問題:
以上是如何安全地將 void* 指標轉換為 C 中的整數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!