Модель данных в C++
Модель данных в С++ – это соотношения размерностей типов, принятых в рамках среды разработки.
Data Type | LP32 | ILP32 | ILP64 | LLP64 | LP64 | |
char | 8 | 8 | 8 | 8 | 8 | |
short | 16 | 16 | 16 | 16 | 16 | |
int32 | 32 | |||||
int | 16 | 32 | 64 | 32 | 32 | |
long | 32 | 32 | 64 | 32 | 64 | |
long long (int64) | 64 | |||||
pointer | 32 | 32 | 64 | 64 | 64 |
- ILP32 – базовые типы данных имеют следующие размеры: int – 32 бита, long – 32 бита, указатель – 32 бита.
- ILP32LL (ILP32LL64) – базовые типы данных имеют следующие размеры: int – 32 бита, long – 32 бита, long long – 64 бита, указатель – 32 бита. Эта модель данных используется в 32-битной Windows (Win32).
- ILP64 – базовые типы данных имеют следующие размеры: int – 64 бита, long – 64 бита, long long – 64 бита, указатель – 64 бита. Эта модель данных используется достаточно редко.
- LLP64 (ILP32LLP64, P64) – базовые типы данных имеют следующие размеры: int – 32 бита, long – 32 бита, long long – 64 бита, указатель – 64 бита. Эта модель данных используется в 64-битной Windows (Win64).
- LP64 (I32LP64) – базовые типы данных имеют следующие размеры: int – 32 бита, long – 64 бита, long long – 64 бита, указатель – 64 бита. Эта модель данных используется в большинстве Unix систем.
Основной моделью данных для 64-битной операционной системы Windows является LLP64. Для совместимости 64-битная система Windows поддерживает исполнение 32-битных программ, которые работают в режиме модели данных ILP32LL.
Дополнительные ссылки: