在使用C 類型轉換時,了解reinterpret_cast 和static_cast 之間的區別至關重要。
reinterpret_cast: 適用於:
在您的場景中,從C 呼叫C 且C 物件必須儲存在C void*中,適當的演員表是:
為什麼static_cast?
根據 C 標準,static_cast 指向和來自 void* 的指針會維護地址。這可以確保在轉換並轉換回來後,保留原始地址。
reinterpret_cast提供了較不安全的保證。如果您將reinterpret_cast 轉換為不同的指標類型然後再返回,則可以保證原始值。然而,中間的 void* 指標的值並沒有被指定,使得 reinterpret_cast 不太適合這個用例。
因此,對於 void* 之間的轉換,static_cast 是首選。
以上是C 類型轉換:什麼時候應該使用 `reinterpret_cast` 與 `static_cast` 進行 void* 轉換?的詳細內容。更多資訊請關注PHP中文網其他相關文章!