Xcode 4.2에서 a void*
를 .NET 형식으로 변환하는 코드가있는 프로젝트를 빌드하려고 합니다 int
. 이 typecasting은 여기에서 시도한 것처럼 C ++ 컴파일 중에 오류가 발생하지 않습니다 .
나는이 변경 될 때까지 그것은 또한 내 프로젝트에서 잘 작동했다 Valid Architectures
의를 Build Settings
에서 i386
로 i386 x86_64
하는 기본적으로도 64 비트 모드에서 코드를 컴파일합니다. 저는 프로젝트의 탈탄 화 작업을하고 있기 때문에이 변경을 수행해야했습니다. 그래서 그 변경 후, 제가 이해하기 조금 어려운 것을 포함하여 많은 오류가 발생했습니다. 무슨 일이 일어나고 있는지 어떤 아이디어?
x86에서 a void*
는 32 비트 길이이고 an은 32 비트 길이 일 int
가능성이 매우 높으므로 모든 것이 작동합니다.
그러나 x86_64에서 a void*
는 64 비트 길이이고 an int
은 32 비트로 남아있을 가능성이 높으므로 값이 더 이상 맞지 않습니다.
당신이 완전한 형태로 포인터를 저장해야하는 경우, 사용 intptr_t
또는 uintptr_t
이러한 목적을 위해 디자인하는.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다