Фундаментальные типы (C++)
Основные типы в С++ делятся на три категории: целочисленные, с плавающей запятой и void. Целочисленные типы позволяют обрабатывать целые числа. Типы с плавающей запятой позволяют задавать значения, которые могут иметь дробные части.
Типом void описывается пустой набор значений. Задание переменных типа void невозможно. Этот тип служит в основном для объявления функций, не возвращающих значения, или универсальных указателей на нетипизированные или произвольно типизированные данные. Любое выражение можно явно преобразовать или привести к типу void. Однако такие выражения можно использовать только в следующих операторах и операндах:
в операторе выражения (дополнительные сведения см. в разделе Выражения);
в левом операнде оператора запятой (дополнительные сведения см. в разделе Оператор "запятая");
во втором и третьем операндах условного оператора (? :). (дополнительные сведения см. в разделе Выражения с условным оператором).
В следующей таблице объясняются ограничения на размеры типов. Эти ограничения не зависят от реализации Microsoft.
Основные типы языка C++
Категория |
Тип |
Описание |
---|---|---|
Целые числа |
char |
char — это целочисленный тип, обычно содержащий члены кодировки выполнения (в Microsoft C++ это кодировка ASCII). |
|
|
Компилятор C++ обрабатывает переменные типа char, signed char и unsigned char как переменные разных типов. Переменные типа char повышаются до типа int, как если бы по умолчанию они имели тип signed char, если не используется параметр компиляции /J. В этом случае они рассматриваются как тип unsigned char и повышаются до типа int без расширения знака. |
|
bool |
bool — это целочисленный тип, который может иметь одно из двух значений: true или false. Его размер не определен. |
|
short |
short int (или просто short) — это целочисленный тип, размер которого больше или равен размеру типа char и меньше или равен размеру типа int. |
|
|
Объекты типа short могут объявляться как объекты типа signed short и unsigned short. Signed short — синоним short. |
|
int |
int — это целочисленный тип, размер которого больше или равен размеру типа short int и меньше или равен размеру типа long. |
|
|
Объекты типа int могут объявляться как объекты типа signed int и unsigned int. Signed int — синоним int. |
|
__intn |
Целое число с указанием размера, где n — размер в битах целочисленной переменной. Значение n может быть 8, 16, 32 или 64 (__intn — ключевое слово для систем Microsoft). |
|
long |
long (или long int) — это целочисленный тип, размер которого больше или равен размеру типа int. |
|
|
Объекты типа long могут объявляться как объекты типа signed long и unsigned long. Signed long — синоним long. |
long long |
Больше, чем unsigned long. |
|
Объекты типа long long могут объявляться как объекты типа signed long long и unsigned long long. Signed long long — синоним long long. |
||
Числа с плавающей запятой |
float |
float — это тип с плавающей запятой наименьшего размера. |
|
double |
double — это тип с плавающей запятой, размер которого больше или равен размеру типа float, но меньше или равен размеру типа long double. |
|
long double1 |
long double — это тип с плавающей запятой, размер которого равен размеру типа double. |
Расширенные символы |
__wchar_t |
Переменная типа __wchar_t обозначает расширенный символьный или многобайтовый символьный тип. По умолчанию тип wchar_t является собственным типом, но можно использовать /Zc: wchar_t-, чтобы сделать wchar_t определением типа для unsigned short. Чтобы указать константу расширенного символьного типа, перед символьной или строковой константой следует использовать префикс L. |
1 Представления long double и double идентичны. Однако типы long double и double — это отдельные типы.
Блок, относящийся только к системам Microsoft
В следующей таблице указаны объемы памяти, необходимые для основных типов в Microsoft C++.
Размеры основных типов
Тип |
Размер |
---|---|
bool |
1 байт |
char, unsigned char, signed char |
1 байт |
short, unsigned short |
2 байта |
int, unsigned int |
4 байта |
__intn |
8, 16, 32, 64 или 128 бит в зависимости от значения n. __intn относится только к системам Microsoft. |
long, unsigned long |
4 байта |
float |
4 байта |
double |
8 байт |
long double1 |
8 байт |
длинное длинное |
Аналогично параметру __int64. |
1 Представления long double и double идентичны. Однако типы long double и double — это отдельные типы.
Завершение блока, относящегося только к системам Microsoft
Сводку по диапазонам значений каждого типа см. в разделе Диапазоны типов данных.
Дополнительные сведения о преобразовании типов см. в разделе Стандартные преобразования.