64비트 Windows에서 Long의 비트 크기: 자세히 살펴보기
64비트 Windows에서 long의 크기에 대한 질문은 약간의 혼란을 불러일으켰습니다. 문서에서는 이 환경에서 long이 실제로 64비트라고 제시하지만 현실은 더 미묘합니다.
Unix 시스템 영역에서는 64비트 플랫폼(주로 ILP64)의 정수 및 포인터 크기에 대한 다양한 배열이 있습니다. 그리고 LP64. 그러나 LLP64의 경우 Microsoft의 접근 방식이 다릅니다.
ILP64와 LP64
Type | ILP64 | LP64 | LLP64 |
---|---|---|---|
char | 8 | 8 | 8 |
short | 16 | 16 | 16 |
int | 64 | 32 | 32 |
long | 64 | 64 | 32 |
long long | 64 | 64 | 64 |
pointer | 64 | 64 | 64 |
모든 최신 64비트 Unix 시스템은 LP64를 사용합니다. 여기서 long은 64비트입니다. MacOS X 및 Linux가 이 범주에 속합니다.
LLP64 및 64비트 Windows
Microsoft의 LLP64 구성표는 수정 없이 32비트 소프트웨어를 다시 컴파일하는 데 우선 순위를 둡니다. 결과적으로 64비트 Windows 시스템에서는
플랫폼 중립 코드
To 플랫폼 중립적인 코드를 얻으려면 C99
코드에서 이러한 유형을 사용하면 다양한 플랫폼에서 특정 정수 크기와 독립적인 애플리케이션을 작성할 수 있습니다.
결론
long은 Unix 시스템에서 일반적으로 64비트인 반면, 64비트 Windows에서는 , Microsoft의 LLP64 접근 방식으로 인해 32비트로 유지됩니다. 다양한 정수 크기 규칙을 이해하고 플랫폼 중립적인 유형을 사용함으로써 개발자는 다양한 시스템에서 호환되는 코드를 작성할 수 있습니다.
위 내용은 64비트 Windows에서 'long'은 정말 64비트인가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!