이상한 질문이 있지만 저는 g ++를 사용하여 Solaris에서 64 비트 컴파일시 32 비트 포인터를 만들 수 있는지 궁금합니다. 최종 객체는 64 비트 일 필요가 있지만 내 포인터 오프셋 중 하나는 솔라리스에서 더 커지고 있습니다. 그런 다음 컴파일 할 때 64 비트를 사용하면 윈도우에 있습니다. 이것은 큰 문제를 일으키는 것입니다. 64 비트 컴파일 된 객체 내에서 32 비트 포인터를 만들 수 있는지 궁금합니다.64 비트 Solaris에서 32 비트 포인터로 컴파일
1
A
답변
0
일반 포인터를 변경할 수 없으며 포인터 크기는 sizeof(void *)
입니다. 그리고 할 수 있다면 64 비트 시스템에서 32 비트 포인터로 무엇을 할 것입니까?
C에서 포인터를 사용합니까, 아니면 파일 오프셋에 대한 포인터를 의미합니까?
1
포인터 크기는 대상 아키텍처의 특성이므로 32 비트 및 64 비트 포인터를 혼합하고 일치시킬 수 없습니다. 이론적으로는 "제한적 도달 범위"오프셋을 사용하여 작업 할 수 있지만 왜 다시, 그리고 더 좋은 방법이 될지 물어보십시오 (예 : 정수 포인터에 대한 포인터를 캐스팅하는 실수와 같은 냄새가 나는 디자인을 다시 생각해보십시오). 그것을하는 것.
0
포인터 유형이 있으면 64 비트 프로그램에서 32 비트로 만들면 안됩니다. 메모리 모델과 관련이없는 일부 오프셋 인 경우 플랫폼간에 안정적인 크기를 가진 다른 유형을 사용할 수 있습니다 (예 : uint32_t
).
0
64 비트 컴퓨터에서 32 비트 포인터를 "필요로하는"것은 의미가 없습니다. 나는 또한이 라인을 이해 해달라고 :
최종 목적은 내가 좀 더 자세히 살펴보고 최종의 버그를 수정하려고 할 것이다 그러나
64 비트를 할 필요가있다. 몇 가지 예제 코드를 게시하면 더 많은 도움을 줄 수 있습니다.
관련 문제
- 1. 32 비트 64 비트 호환
- 2. 32 비트/64 비트 OS?
- 3. 32 비트 및 64 비트 ASP.NET 배포
- 4. 포트란 : 32 비트/64 비트 성능 이식성
- 5. 32 비트 dll에서 64 비트 dll로 변환
- 6. 64 비트 시스템에서 Asp.NET을 32 비트로 컴파일
- 7. 32 비트 용 64 비트 plaform에서 어셈블리 컴파일
- 8. gcc : 32 비트 플랫폼에서 64 비트 바이너리 컴파일
- 9. 32 비트 또는 64 비트 dll로 .net 응용 프로그램을 컴파일
- 10. 32 비트 윈도우 아래의 64 비트 레지스터
- 11. 64 비트 어셈블리의 32 비트 명령어들
- 12. 32 비트/64 비트 시스템에 관한 질문
- 13. Office의 32 비트 DLL 64 비트
- 14. 64 비트 Weblogic 서버의 32 비트 JDK
- 15. * .WAR (64 비트 x 32 비트) 생성
- 16. 32 비트 64 비트 참조 라이브러리
- 17. SharePoint 64 비트 또는 32 비트
- 18. 64 비트 Windows 2008의 32 비트 cluster.exe
- 19. 32 비트 Windows XP 64 비트 VM
- 20. SHGetFolderPath() 32 비트 대 64 비트
- 21. 32 비트 라이브러리를 64 비트 프로그램에 연결
- 22. 64 비트 대 32 비트 Windows 결정
- 23. 64 비트 OS/32 비트 프로세스
- 24. 32 비트 및 64 비트 CPU/OS
- 25. 64 비트 파이썬은 32 비트 Windows
- 26. 64 비트 컴퓨터에서 32 비트 DLL 사용
- 27. 32 비트 라이브러리를 다시 컴파일
- 28. 컴파일 OpenBUGS 64 비트
- 29. asp.net dllls의 64 비트 컴파일
- 30. 32 비트 서버 및 32/64 비트 클라이언트가있는 서브 버전
정말로 원하는 것을 이야기하기 위해 질문을 수정해야합니다. 플랫폼간에 포인터 크기가 같아지는 것보다 더 좋은 방법이있을 수 있습니다. 단계가 아니라 목표를 설명하십시오 (http://catb.org/~esr/faqs/smart-questions.html#goal). –
이 질문에는 구체적인 대답이 부족하여 대답하기가 어렵습니다. "큰 문제"는 무엇입니까? 64 비트 창에서 포인터 오프셋이 커지지 않도록하는 방법은 무엇입니까? 질문의 첫 부분조차도 ""64 비트 컴파일로 32 비트 포인터를 만들 수 있습니까? "라는 말이 무슨 뜻인지 알 수 없습니다. –