Справочник языка Cи


         

если размер этого типа также


или, если размер этого типа также оказывается недостаточен, типом unsigned long. В таблице 1.5 показаны диапазоны значений констант различных типов для компьютера, на котором тип int

имеет длину 16 битов и тип long имеет длину 32 бита.

Таблица1.5.

































































Десятичные константы



Восьмеричные константы



Шестнадцатеричные константы



Тип



0—32767



0—077777



0х0—0x7FFF



int





0100000—0177777



0х8000—0xFFFF



unsigned int



32767—2147483647



02000001—017777777777



0х10000—0x7FFFFFFF



long





020000000000—030000000000



0х80000000—0xFFFFFFFF



unsigned long



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

Программист может явно определить для любой целой константы тип long, записав букву "l" или "L"

в конец константы. Это позволяет расширить нижнюю границу диапазона значений констант любого типа до нуля. Например, константа со значением 10 будет иметь тип long только в том случае, если она будет записана с суффиксом L, т. е. 10L. В таблице 1.6 приведены примеры длинных целых констант.

Таблица 1.6.



































Десятичные константы



Восьмеричные константы



Шестнадцатеричные константы



12L



012L



0xaL или 0xAL



0l



0115l



0х4fl или 0x4Fl



В СП ТС

реализован также суффикс U (или u), означающий, что константа имеет тип unsigned. Можно использовать одновременно оба суффикса — L и U — для одной и той же константы. Кроме того, в СП ТС константе присваивается тип unsigned long, если ее значение превышает 65535, независимо от наличия или отсутствия суффикса U (в СП MSC в этом случае константе был бы присвоен тип long).


Содержание  Назад  Вперед