Страница 29 из 56
нец комментария вызовут синтаксическую ошибку. По умолчанию
Турбо Си не разрешает вложенные комментарии имеет
Турбо Си не разрешает вложенные комментарии, хотя вы можете кор-
ректно откомпилировать (такую как показано) программу с вложен-
ными комментариями, используя опцию компилятора -c (либо с по-
мощью конструкции Nested Comments... ON (разрешить вложение ком-
ментариев) в O/C/Source меню). Для обеспечения большей мобиль-
ности правильнее отмечать код, который должен быть прокомментиро-
ван, директивами #if 0 и #endif.
Комментарии заменяются одним символом пробела после макро-
расширения. В других реализациях комментарии уничтожаются пол-
ностью или иногда используется передача лексем. Смотрите "Замена
- 235,236 -
лексем" в этой главе.
Идентификаторы (K&R 2.2)
-----------------------------------------------------------------
Идентификаторы - это просто те имена, которые вы даете пере-
менным, функциям, типам данных или другим объектам, определенным
пользователями. В Си идентификаторы могут включать буквы (A...Z,
a...z) и цифры (0...9), а также символ подчеркивания. Турбо Си
также разрешает вам использовать знак доллара ($). Конечно, иден-
тификатор может начинаться только с буквы или символа (_).
Регистр (верхний или нижний) имеет значение: другими словами
идентификаторы indx и Indx различны. В Турбо Си внутри программы
значащими являются первые 32 символа идентификатора ; однако вы
можете изменить это число с помощью опции компилятора -i#, где #
является числом значащих символов. (Это определяется в меню оп-
ций O/C/S/Identifier Length (Длина Идентификатора) .)
Первые 32 символа являются значащими также и для глобальных
идентификаторов, берущихся из других модулей. Однако, вы имеете
опцию разрешающую определять или нет чувствительность к регистрам
этих идентификаторов, используя опцию Case sensitive link..ON из
подменю Options/Linker или /c опцию компоновщика TLINK, запускае-
мого с командной строки. Но отметим, конечно, что идентификаторы
типа pascal никогда не чувствительны к регистру во время компо-
новки.
Ключевые слова (K&R 2.3)
-----------------------------------------------------------------
В таблице 8.1 приведены ключевые слова, зарезервированные
Турбо Си, которые не должны использоваться в качестве названий
идентификаторов. Предшествующее им сокращение AN соответствует
ANSI расширениям K&R, а TC - расширениям Турбо Си. Ключевые слова
entry и fortran, упомянутые в K&R, не используются и не резерви-
руются в Турбо Си.
- 237,238 -
Таблица 11.1: Ключевые слова зарезервированные Турбо Си.
-----------------------------------------------------------------
TC asm extern return TC _cs TC _DH
auto TC far short TC _ds TC _DL
break float AN signed TC _es TC _DX
case for sizeof TC _ss TC _BP
TC cdecl goto static TC _AH TC _DI
char TC huge struct TC _AL TC _SI
AN const if switch TC _AX TC _SP
continue int typedef TC _BH
default TC interrupt union TC _BL
do long unsigned TC _BX
double near AN void TC _CH
else TC pascal AN volatile TC _CL
AN enum register while TC _CX
Константы (K&R 2.4)
-----------------------------------------------------------------
Турбо Си поддерживает все типы констант, определенные в K&R,
с некоторыми расширениями.
Целые константы (K&R 2.4.1)
---------------------------
0xFFFFFFFF будет переполнение (как описано
выше)
-----------------------------------------------------------------
Символьные константы (K&R 2.4.3)
--------------------------------
Турбо Си поддерживает двухсимвольные константы, например,
'An', '\n\t' и '\007\007'. Эти константы имеют 16-битное предс-
тавление типа int, причем первый символ находится в младшем бай-
те, а второй в старшем. Запомните, что такие константы не перено-
симы в другие компиляторы Си.
Односимвольные константы, такие как 'A', '\t' и '\007' также
имеют 16 битное представление типа int. В этом случае младший
байт является сигналом переполнения в старшем байте; т.е., если
десятичное значение больше чем 127, то старший байт устанавлива-
ется в -1 [=0xFF]. Это может быть запрещено объявлением, что тип
char по умолчанию является незначащим. Для этого используется
опция компилятора -k или конструкция Default char type...Unsigned
в подменю Options/Compiler/Source, делающая старший байт нулевым,
не считаясь со значением младшего байта.
Турбо Си поддерживает ANSI расширение, допускающее шестнадца-
тиричное представление кодов символов, например, '\x1F','\x82' и
так далее. Кроме того допустима запись x и X, а также использова-
ние от одной до трех цифр.
Турбо Си также поддерживает другие ANSI расширения из списка
разрешенных escape (эскейп)-последовательностей. Escape-последо-
вательности представляют собой значения, которыми засылаются сим-