CHAR_BIT |
8 |
битов в значении char |
SCHAR_MAX |
UCHAR_MAXили SCHAR_MAX |
максимальное значение char |
CHAR_MIN |
0 или SCHAR_MIN |
минимальное значение char |
INT_MAX |
+32767 |
максимальное значение int |
INT_MIN |
-32767 (I.B.: обычно это значение -32768 ) |
минимальное значение int |
LONG_MAX |
+2147463647 |
максимальное значение long |
LONG_MIN |
-2147483647 (I.B.: обычно это значение -2147483648 ) |
минимальное значение long |
SCHAR_MAX |
+127 |
максимальное значение signed char |
SCHAR_MIN |
-127 (I.B.: обычно это значение -128 ) |
минимальное значение signed char |
SHRT_MAX |
+32767 |
максимальное значение short |
SHRT_MIN |
-32767 (I.B.: обычно это значение -32768 ) |
минимальное значение short |
UCHAR_MAX |
255 |
максимальное значение unsigned char |
UINT_MAX |
65535 |
максимальное значение unsigned int |
ULONG_MAX |
4294967295 |
максимальное значение unsigned long |
USHRT_MAX |
65535 |
максимальное значение unsigned short |
Имена, приведенные в следующей таблице, взяты из и являются константами, имеющими отношение к арифметике с плавающей точкой. Значения (если они есть) представляют собой минимальные значения для соответствующих величин. В каждой реализации устанавливаются свои значения.
FLT_RADIX |
2 |
основание для представления порядка, например: 2, 16 |
FLT_ROUNDS |
|
способ округления при сложении чисел с плавающей точкой |
FLT_DIG |
6 |
количество верных десятичных цифр |
FLT_EPSILON |
1E-5 |
минимальное х, такое, что 1.0 + х != 1.0 |
FLT_MANT_DIG |
|
количество цифр по основанию FLT_RADIXв мантиссе |
FLT_MAX |
1E+37 |
максимальное число с плавающей точкой |
FLT_MAX_EXP |
|
максимальное n, такое, что FLT_RADIX n-1 представимо |
FLT_MIN |
1E-37 |
минимальное нормализованное число с плавающей точкой |
FLT_MIN_EXP |
|
минимальное n, такое, что 10 nпредставимо в виде нормализованного числа |
DBL_DIG |
10 |
количество верных десятичных цифр для типа double |
DBL_EPSILON |
1E-9 |
минимальное х, такое, что 1.0 + x != 1.0, где x принадлежит типу double |
DBL_MANT_DIG |
|
количество цифр по основанию FLT_RADIXв мантиссе для чисел типа double |
DBL_MAX |
1E+37 |
максимальное число с плавающей точкой типа double |
DBL_MAX_EXP |
|
максимальное n, такое, что FLT_RADIX n-1 представимо в виде числа типа double |
DBL_MIN |
1E-37 |
минимальное нормализованное число с плавающей точкой типа double |
DBL_MIN_EXP |
|
минимальное n, такое, что 10 nпредставимо в виде нормализованного числа типа double |
Приложение C. Перечень изменений
С момента публикации первого издания этой книги определение языка Си претерпело изменения. Почти все нововведения - это расширения исходной версии языка, выполненные так, чтобы сохранилась совместимость с существующими программами; некоторые изменения касаются устранения двусмысленностей первоначального описания, а некоторые представляют собой модификации, привнесенные существующей практикой. Многие из новых возможностей, впоследствии принятые другими разработчиками Си-компиляторов, были первоначально объявлены в документах, прилагаемых к компиляторам. Комитет ANSI, подготавливая стандарт языка, включил большинство этих изменений, а также ввел другие значительные модификации. Некоторые коммерческие компиляторы реализовали их еще до выпуска официального Си-стандарта.
В этом приложении сведены воедино различия между языком, определенным в первой его редакции, и той его версии, которая принята в качестве стандарта. Здесь рассматривается только сам язык; вопросы, относящиеся к его окружению и библиотеке, не затрагиваются. Хотя последние и являются важной частью стандарта, но, поскольку в первом издании не делалось попытки описать среду и библиотеку, с соответствующими стандартными элементами сравнивать практически нечего.
• В стандарте более тщательно, по сравнению с первым изданием, определено и расширено препроцессирование: в его основу явно положены лексемы; введены новые операторы для "склеивания" лексем ( ##) и создания символьных строк ( #), а также новые управляющие строки, такие как #elifи #pragma; разрешено повторное определение макроса с той же последовательностью лексем; отменена подстановка параметров внутри строк. Разрешено "склеивание" строк с помощью знака \в любом месте, не только в строках и макроопределениях (см. A.12).
Читать дальше