簡體   English   中英

錯誤類型轉換void指針指向int

[英]Error typecasting void pointer to int

我正在嘗試在Xcode 4.2上構建一個項目,其中有一些代碼將int void*轉換為void* 這個類型轉換在c ++編譯期間不會導致錯誤,因為我在這里嘗試。

它在我的項目中工作正常,直到我將Build SettingsValid Architecturesi386更改為i386 x86_64 ,這基本上也是在64位模式下編譯代碼。 我不得不執行此更改,因為我正致力於對項目進行去碳化。 所以,在那次改變之后,引入了許多錯誤,包括我發現有點難以消化的錯誤。 可能會發生什么想法?

在x86上, void*是32位長,而int很可能也是32位長,所以一切正常。

但是,在x86_64上, void*是64位長,而int可能保持32位,因此該值不再適合。

如果需要將指針存儲在整數類型中,請使用為此目的而設計的intptr_tuintptr_t

暫無
暫無

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

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