КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Спецификаторы типов
Язык Си поддерживает определения для множества базовых типов данных, называемых "основными" типами. Названия этих типов перечислены в Табл. 4.1. ------------------------------------------------------------ Типы целых Типы плавающих Другие типы ------------------------------------------------------------ signed char float void signed int double signed short intsigned long int unsigned char unsigned int unsignet short int unsigned long int ----------------------------------------------------------- Табл. 4.1. Основные типы. Перечислимые типы также рассматриваются как основные типы. Спецификаторы перечислимых типов рассмотрены в разделе 4.7.1. Типы signed char, signed int, signed short int и signed long int вместе с соответствующими двойниками unsigned называются типами целых. Спецификаторы типов float и double относятся к типу "плавающих". В об"явлениях переменых и функций можно использовать любые спецификаторы "целый" и "плавающий". Тип void может быть использован только для об"явления функций, которые не возвращают значения. Типы функций рассмотрены в разделе 4.4. Можно задать дополнительные спецификаторы типа путем об"явления typedef, описанного в разделе 4.7.2. При записи спецификаторов типов допустимы сокращения как показано в табл. 4.2. В целых типах ключевое слово signed может быть опущено. Так, если ключевое слово unsigned опускается в записи спецификатора типа, то тип целого будет знаковым, даже если опущено ключевое слово signed. В некоторых реализациях могут быть использованы опции компилятора, позволяющие изменить умолчание для типа char со знакового на беззнаковый. Когда задана такая опция, сокращение char имеет то же самое значение, что и unsigned char, и следовательно ключевое слово sidned должно быть записано при об"явлении символьной величины со знаком. ----------------------------------------------------------- Спецификатор типа Сокращение ----------------------------------------------------------- signed char char signed int signed, int signed short int short, signed short signed long int long, signed long unsigned char - unsigned int unsigned unsigned short int unsignet short unsignet long int unsignet long float - long float double ------------------------------------------------------------ Табл. 4.2. Спецификаторы и сокращения Замечание: в этом руководстве в основном используются сокращенные формы, перечисленные в Табл. 4.2, при этом предполагается, что char по умолчанию знаковый. В табл. 4.3 для каждого типа приведены: размер распределяемой памяти и области значений переменных для данного типа. Поскольку тип void не представляет переменных, он не включен в эту таблицу. ----------------------------------------------------------- Тип Представление Область значений в памяти величины ----------------------------------------------------------- char 1 байт -128 до 127 int зависит от реализации short 2 байта -32768 до 32767 long 4 байта -2.147.483.648 до 2.147.483.647 unsigned char 1 байт 0 до 255
unsigned зависит от реализации unsigned short 2 байта 0 до 65535 unsigned long 4 байта 0 до 4.294.967.295 float 4 байта IEEE стандартное соглашение double 8 байт IEEE стандартное соглашение ------------------------------------------------------------ Табл 4.3 Размер памяти и область значений типов Тип char используется для запоминания буквы, цифры или символа из множества представимых символов. Значением об"екта типа char является ASCII код, соответствующий данному символу. Так как тип char интерпретируется как однобайтовая целая величина с областью значений от -128 до 127, то только величины от 0 до 127 имеют символьные эквиваленты. Аналогично, тип unsigned char может запоминать величины с областью значений от 0 до 255. Заметим, что представление в памяти и область значений для типов int и unsigned int не определены в языке Си. По умолчанию размер int (со знаком и без знака) соответствует реальному размеру целого на данной машине. Например, на 16-ти разрядной машине тип int всегда 16 разрядов или 2 байта. На 32-ух разрядной машине тип int всегда 32 разряда или 4 байта. Таким образом, тип int эквивалентен типам short int или long int в зависимости от реализации. Аналогично, тип unsigned int эквивалентен типам unsigned short или unsigned long. Спецификаторы типов int и unsigned int широко используются в программах на Си, поскольку они позволяют наиболее эффективно манипулировать целыми величинами на данной машине. Однако, размер типов int и unsigned int переменный, поэтому программы, зависящие от специфики размера int и unsigned int могут быть непереносимы. Переносимость кода можно улучшить путем включения выражений с sizeof операцией.
Дата добавления: 2014-01-05; Просмотров: 394; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |