728x90
반응형
LLP64와 LP64는
C/C++ 컴파일러가
데이터 타입의 크기를 정의하는
데이터 모델(data model) 임.
LLP64와 LP64는 는 해당 모델이 어떤 타입들을 64비트로 처리하는지를 나타내는 이름을 가짐.
long과pointer가 다른 크기면, 포인터를long에 저장할 때 잘림(truncation) 문제가 발생할 수 있음- 플랫폼 간 이식성(portability) 확보를 위해서는 정확한 타입 사용이 필수
LLP64, LP64 명칭의 의미
| 이름 | 약어 의미 | 설명 | 환경 |
|---|---|---|---|
| LP64 | Long and Pointer = 64-bit | long과 pointer가 64비트 (8바이트)로 확장됨 |
gcc, clang |
| LLP64 | Long Long and Pointer = 64-bit | long long과 pointer는 64비트, long은 여전히 32비트 |
msvc |

이름을 통한 해석 (initialism)
LP64
- L = Long
- P = Pointer
- 두 타입을 64비트로 사용하겠다는 의미
- 대부분의 Unix/Linux, macOS, GCC, Clang 환경이 이 모델 사용
LLP64
- LL = Long Long
- P = Pointer
long은 32비트 유지, 대신long long과pointer를 64비트로 확장- Windows의 MSVC (Microsoft Visual C++)에서 사용
주요 타입 크기 비교
| Data Type | LLP64 (Windows/MSVC) | LP64 (Linux,macOS/gcc,clang) | 주요차이 |
| short | 2 bytes | 2 bytes | 동일 |
| int | 4 bytes | 4 bytes | 동일 |
| long | 4 bytes | 8 bytes | 차이 있음 |
| long long | 8 bytes | 8 bytes | 동일 |
| void* | 8 bytes | 8 bytes | 동일 |
| float | 4 bytes | 4 bytes | 동일 |
| double | 8 bytes | 8 bytes | 동일 |
| long double | 8 bytes | 16 bytes (x86-64) | 구현체에 따라 다름. Windows는 double과 같고, Linux는 확장 (단 ARM계열은 8bytes일 수 있음. macOS ARM64가 예임.) |
| word | 8 bytes (64-bit CPU) | 8 bytes (64-bit CPU) | 아키텍처에 따라 다름 |
- "word"는 일반적으로 CPU 아키텍처의 기본 연산 단위를 의미하며, 데이터 모델(LP64, LLP64)과는 직접적으로 연결되지 않음.
- C/C++ 에서 "word"라는 공식적인 타입이 없으며, CPU 및 OS마다 의미가 다를 수 있음.
추천:
- 이식성 있는 코드를 원한다면
int32_t,int64_t등 명확한 고정폭 타입 사용
같이 보면 좋은 자료들
https://dsaint31.tistory.com/456
[Programming] Primitive Data Type : C, C++, NumPy, Torch
Primitive Data Type이(Unboxed type)란?C, C++, NumPy, PyTorch, TensorFlow 등에서 사용되는numeric data type들은보통 unboxed type 이라고도 불리는 primitive data type들이다.unboxed type에서는할당된 메모리 bit들이 해당 numeri
dsaint31.tistory.com
https://dsaint31.tistory.com/515
[Python] (Data) Type: Summary
1. Type 이란?Programming에서 사용되는 모든 value 혹은 object 들의 종류 를 (data) type이라고 부름.수학에서 숫자의 종류(type)를 실수, 정수, 자연수 등으로 나누는 것을 생각하면 쉽다.Programming에서는 문
dsaint31.tistory.com
728x90
'CE' 카테고리의 다른 글
| [CE] WebAssmbly (WASM) (0) | 2025.04.21 |
|---|---|
| [Programming] MVC, MVVM, and Qt's MV (0) | 2025.04.14 |
| [Py] bytecode 분석 - dis 모듈 (0) | 2025.03.11 |
| Text File and Binary File: Hex Code (0) | 2025.03.11 |
| Apple II (1977년, Apple ][ ) (0) | 2025.03.11 |