ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ В C++ (4-Е ИЗДАНИЕ) (часть 2) онлайн

Другие целые типы

Кроме int существует также еще несколько целых типов, из которых наиболее употребительными являются long и short (строго говоря, тип char тоже является целым, но пока мы не будем рассматривать его в таком качестве). Мы уже гово- рили, что размер переменных типа int является аппаратно-зависимым. Перемен- ные типов long и short, напротив, имеют фиксированный размер, не зависящий от используемой системы.

Размер типа long всегда равен 4 байтам и совпадает с размером типа int в слу- чае 32-разрядных систем, подобных Windows. Это означает, что диапазон значений типа long совпадает с диапазоном типа int: от -2 147 483 648 до 2 147 483 647. Тип long может быть описан как long int между двумя такими описаниями нет разницы. Если ваша операционная система 32-разрядная, то не важно, какой тип использовать — int или long, но в 16-разрядной системе тип long сохранит свой диапазон значений, в то время как тип int уже будет иметь диапазон, совпада- ющий с типом short.

Тип short в любой операционной системе имеет размер, равный двум байтам. Диапазон значений типа short — от -32 768 до 32 767. Использование типа short не имеет особого смысла на современных 32-разрядных операционных систе- мах, за исключением тех случаев, когда необходима экономия памяти. Несмотря на вдвое больший размер по сравнению с типом short, обработка переменных типа int происходит быстрее.

Если вам необходимо описать константу типа long, то после ее числового значения следует указать символ L:

long var = 7678L; // описание константы longvar типа long

 

Многие компиляторы позволяют определять целые типы с указанием нуж- ной разрядности (в битах). Имена таких типов начинаются с двойного символа подчеркивания:  __int8, __int16, __int32,  __int64. Тип __int8 соответствует типу char, типы __int16 и __int32 — соответственно типу short и паре типов int и long (справедливо как минимум для 32-разрядных систем). Тип __int64 используется для хранения больших целых чисел разрядностью до 19 десятичных знаков.

Преимущество этих типов данных состоит в том, что они не зависят от операци- онной системы, в которой они используются, но, тем не менее, использование этих типов не получило большого распространения.

 

26