[英]Error typecasting void pointer to int
我正在嘗試在Xcode 4.2上構建一個項目,其中有一些代碼將int
void*
轉換為void*
。 這個類型轉換在c ++編譯期間不會導致錯誤,因為我在這里嘗試。
它在我的項目中工作正常,直到我將Build Settings
的Valid Architectures
從i386
更改為i386 x86_64
,這基本上也是在64位模式下編譯代碼。 我不得不執行此更改,因為我正致力於對項目進行去碳化。 所以,在那次改變之后,引入了許多錯誤,包括我發現有點難以消化的錯誤。 可能會發生什么想法?
在x86上, void*
是32位長,而int
很可能也是32位長,所以一切正常。
但是,在x86_64上, void*
是64位長,而int
可能保持32位,因此該值不再適合。
如果需要將指針存儲在整數類型中,請使用為此目的而設計的intptr_t
或uintptr_t
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.