Страница 30 из 56
вольные или строковые константы,перед которым находится обратный
слеш (\). В таблице 11.3 приведен список всех разрешенных после-
довательностей, а те что отмечены звездочкой (*) являются допол-
нением к списку, приведенному в K&R.
- 243,244 -
Таблица 11.3. Escape последовательности Турбо Си
-----------------------------------------------------------------
Последовательность Значение Символ Что делает
-----------------------------------------------------------------
* \a 0x07 BEL Звуковой сигнал
\b 0x08 BS
- 247,248 -
Зависимость от аппаратных средств (K&R 2.6)
-----------------------------------------------------------------
В K&R признается, что размер и числовой диапазон основных
типов данных (со всеми вариациями) очень зависит от конкретной
архитектуры компьютера. Это справедливо для Турбо Си и для боль-
шинства других компиляторов Си. В таблице 11.4 приведен список
размеров и соответствующих диапазонов для различных типов данных
в Турбо Си.
Таблица 11.4. Типы данных, размеры и диапазоны в Турбо Си
-----------------------------------------------------------------
Тип Размер (в битах) Диапазон
-----------------------------------------------------------------
unsigned char 8 0 - 255
char 8 -128 - 127
enum 16 -32768 - 32767
unsigned short 16 0 - 65535
short 16 -32768 - 32767
unsigned int 16 0 - 65535
int 16 -32768 - 32767
unsigned long 32 0 - 4294967295
long 32 -2147483648 - 2147483647
float 32 3.4E-38 - 3.4E+38
double 64 1.7E-308 - 1.7E+308
long double 80 3.4E-4932 - 1.1E+4932
pointer 16 (указатели near,_cs,_ds,_es,_ss)
pointer 32 (указатели far, huge)
- 249,250 -
Преобразования (K&R 6)
-----------------------------------------------------------------
Турбо Си поддерживает стандартные механизмы по автоматичес-
кому преобразованию одного типа данных в другой. Следующие разде-
лы поясняют дополнения к K&R или раскрывают специфические тонкос-
ти данной реализации.
Char, int и enum (K&R 6.1)
-----------------------------------------------------------------
Преобразование символьной константы к целому типу имеет ре-
зультатом 16-битное значение, поскольку и одно, и двусимвольные
константы представляются 16-битным значением (см. K&R 2.4.3.).
Результат преобразования символьного объекта (такого как перемен-
ная) к целочисленному объекту автоматически получает знаковое
расширение, если вы не сделали по умолчанию тип char беззнаковым,
используя при компиляции опцию -k. Объекты типа signed char при
преобразовании их в int всегда используют знаковое расширение;
объекты типа unsigned char всегда устанавливают старший байт в
ноль.
Значения типа enum преобразуются в int без модификации; ана-
логично значения, имеющие тип int, могут преобразовываться в зна-
чения перечислимого типа enum, а символы преобразуются в int зна-
чения и обратно.
Указатели (K&R 6.4)
-----------------------------------------------------------------
В Турбо Си различные указатели вашей программы, могут быть
различных размеров, в зависимости от используемой модели памяти
или используемого модификатора типа указатель. Например, когда вы
компилируете программу, используя конкретную модель памяти, адре-
суемые модификаторы (near, far, huge, _cs, _ds, _es, _ss) в вашем
исходном тексте могут изменять размер указателя, заданный данной
моделью памяти.
Указатель должен быть объявлен как указатель на некоторый
конкретный тип, даже если данный тип - void (который в действи-
- 251,252 -