logo
volkov / C++ / Бьерн Страуструп-Справочное руководство по С++

R.3.6.1 Основные типы

Существует несколько основных типов. В стандартном заголовочном

файле <limits.h> задаются в зависимости от реализации минимальные и

максимальные значения каждого типа.

Объекты, описанные как символы (char), могут хранить любой

элемент из базового набора символов данной машины. Если символ

этого набора хранится в символьной переменной, то ее значение

равно целому значению кода этого символа. Символы могут явно

описываться как unsigned или signed. Обычный char, signed char и

unsigned char являются тремя различными типами. Для всех этих

трех типов требуется одинаковый объем памяти.

С помощью описаний short int, int и long int можно определить

целые трех различных размеров. Для длинных целых требуется памяти

не меньше чем для коротких целых, но в реализации или короткие

целые, или длинные целые, или и те и другие могут оказаться

эквивалентными обычным целым. Обычные целые имеют размер,

определяемый системой команд, размеры других целых определяются

конкретными потребностями.

Для каждого из типов signed char, short, int и long существует

соответствующий беззнаковый тип, который занимает тот же объем

памяти и удовлетворяет тем же требованиям выравнивания.

Требование выравнивание - это ограничение на значение указателя

на данный объект, которое накладывает реализация ($$R.5.4).

Беззнаковые целые, описанные как unsigned, подчиняются законом

арифметики по модулю 2@n, где n число битов, используемое для

представления значения. Отсюда следует, что в арифметике беззнаковых

не возникает переполнения.

Существует три типа с плавающей точкой: float, double и long double.

Тип double гарантирует не меньшую точность представления, чем

float, а тип long double гарантирует точность не меньше, чем у

double. Характеристики основных типов с плавающей точкой определяются

в соответствии с реализацией в стандартном заголовочном файле

<float.h>.

Типы char, int любых размеров и тип перечисления ($$R.7.2)

называются целочисленными типами. Целочисленные типы вместе с

типами с плавающей точкой образуют арифметические типы.

Тип void задает пустое множество значений. Он используется для

обозначения типа функций, которые не возвращают результат. Нельзя

описывать объекты с типом void. Любое выражение можно явно

преобразовать к типу void ($$R.5.4), получившееся выражение можно

использовать только как выражение-оператор ($$R.6.2), как

левый операнд операции запятая ($$R.5.18) или в качестве второго или

третьего операнда в операции ?: ($$R.5.16).