2.1.1. Арифметические типы
Есть две разновидности арифметических типов:
Размер (т.е. количество битов) арифметических типов зависит от конкретного компьютера. Стандарт гарантирует минимальные размеры, перечисленные в табл. 2.1. Однако компиляторы позволяют использовать для этих типов большие размеры. Поскольку количество битов не постоянно, значение одного типа также может занимать в памяти больше или меньше места.
Таблица 2.1. Арифметические типы языка С++
| Тип | Значение | Минимальный размер |
|---|---|---|
bool | Логический тип | Не определен |
char | Символ | 8 битов |
wchar_t | Широкий символ | 16 битов |
char16_t | Символ Unicode | 16 битов |
char32_t | Символ Unicode | 32 бита |
short | Короткое целое число | 16 битов |
int | Целое число | 16 битов |
long | Длинное целое число | 32 бита |
long long | Длинное целое число | 64 бита |
float | Число с плавающей запятой одинарной точности | 6 значащих цифр |
double | Число с плавающей запятой двойной точности | 10 значащих цифр |
long double | Число с плавающей запятой повышенной точности | 10 значащих цифр |
Тип bool представляет только значения true (истина) и false (ложь).
Существует несколько символьных типов, большинство из которых предназначено для поддержки национальных наборов символов. Базовый символьный тип, char, гарантировано велик, чтобы содержать числовые значения, соответствующие символам базового набора символов машины. Таким образом, тип char имеет тот же размер, что и один байт на данной машине.
Остальные символьные типы, wchar_t, char16_t и char32_t, используются для расширенных наборов символов. Тип wchar_t будет достаточно большим, чтобы содержать любой символ в наибольшем расширенном наборе символов машины. Типы char16_t и char32_t предназначены для символов Unicode. (Unicode — это стандарт для представления символов, используемых, по существу, в любом языке.)
int будет по крайней мере не меньше типа short, а тип long long — не меньше типа long. Тип long long введен новым стандартом.