Размер встроенных типов данных в C и C++ не строго фиксирован стандартом, за исключением sizeof(char), который всегда равен 1. Остальные размеры могут варьироваться в зависимости от архитектуры процессора и компилятора. Однако, существуют минимальные гарантированные диапазоны значений и типичные размеры на большинстве современных систем (например, x86-64):
| Тип данных | Минимальный диапазон (C/C++) | Обычный размер (байты) |
|---|---|---|
bool | Не определен явно стандартом | 1 |
char | На основе байта (>= 8 бит) | 1 |
short | >= [-32767, +32767] (>= 16 бит) | 2 |
int | >= short (>= 16 бит) | 4 |
long long | >= [-9223372036854775807, +9223372036854775807] (>= 64 бит) | 8 |
float | Одинарная точность (обычно IEEE 754) | 4 |
double | Двойная точность (обычно IEEE 754) | 8 |
Фактический размер можно определить с помощью оператора sizeof:
cpp