КОМПЬЮТЕРНАЯ ЛИТЕРАТУРА

Turbo C++ Version 1.0 Programmer’s Guide

Комментировать

LIB.com.ua [электронная библиотека]: : TURBO C++ Version 1.0 Programmer’s Guide

типа данных char диапазоне (от 0 до 0xff для Turbo C++).
Большие значения ведутк появлению ошибки компиляции «Numeric
constant too large» («числовая константа слишком велика»).
Например, восьмеричное число \777 больше максимально допус-
тимого значения \377, и вызовет генерирование ошибки. Первое
же не-восьмеричноеили не-шестнадцатиричное значение, встре-
ченное в восьмеричнойили шестнадцатиричной управляющей пос-

— 17 —
ледовательности, означает конец данной последовательности.

В исходной версии Turbo C допускалось только три цифры
шестнадцатиричной управляющей последовательности. Новые пра-
вила ANSI C, реализованные в Turbo C версии 2.0 и TurboC++,
могут вызвать проблемы со старыми кодами, предполагающими
преобразование только первых трех символов. Например, при
использовании версии Turbo C 1.x для определения строки со
звуковым сигналом (код ASCII 7), после которого следуют чис-
ловые символы, программист может написать:

printf(«\x0072.1Простая операционная система»);

Предполагается, что эта строка будет интерпретирована
как \x007 и «2.1Простая операционная система». Однако, Turbo
C++ (и TurboC версии 2.0) компилируют ее как шестнадцатирич-
ное число \x0072 и литеральную строку «.1Простая операцион-
ная система».

Чтобы избежать этих проблем, перепишитеваш код следую-
щим образом:

printf(«\x007» «2.1Простая операционная система»);

Неоднозначность может возникнуть также и в случае,
когда за восьмеричной управляющей последовательностью следу-
ет невосьмеричная цифра. Например, поскольку 8 и 9не являют-
ся допустимыми восьмеричными цифрами, константа \258 будет
интерпретирована какдвухсимвольнаяконстанта, составленная из
символов \25 и 8.

В следующей таблице показаны допустимые управляющие
последовательности.

Управляющие последовательности Turbo C++ Таблица 1.7
————————————————————
Последовательность Значение СимволыВыполняемая функция
————————————————————
\a 0x07BELЗвуковой сигнал
\b 0x08BSЗабой
\f 0x0CFFПеревод бланка
\n 0x0ALFНовая строка (перевод строки)
\r 0x0DCRВозврат каретки
\t 0x09HTТабуляция (горизонтальная)
\v 0x0BVTВертикальная табуляция
\\ 0x5c\Обратная наклонная черта

Для фактического представления символа ASCII «обратная
наклонная черта», используемого например в команде DOS PATH,
следует записывать ее как \\.

\’ 0x27 ‘ Одинарная кавычка (апостроф)
\» 0x22 » Двойная кавычка
\? 0x3F ? Вопросительный знак
\OлюбыеO = строка до трех восьми-
ричных цифр
\xH любыеH = строка шестнадцатирич-
ных цифр
\XH любыеH = строка шестнадцатирич-
ных цифр
————————————————————

Специальные двух-символьные константы Turbo C++

Turbo C++ поддерживает также двух-символьные константы
(например, ‘An’, ‘\n\t’ и ‘\007\007’). Эти константы предс-

— 18 —
тавлены 16-битовыми значениями типаInt, где первый символ
расположен в младшем байте, а второй символ — в старшем бай-
те. Эти константы не могут быть перенесены на другие компи-
ляторы C.

Символьные константы со знаком и без знака

В C одно-символьные константы, такие как ‘A’, ‘\t’ и ‘\
007’, такжепредставлены 16-битовыми значениями типа Int. В
этом случае происходит расширение младшего байта в старший
байт по знаку; такимобразом, еслизначение превышает 127 (ос-
нование 10), то старший байт устанавливается равным -1
(=0xFF). Это свойство можно отменить, объявив, что по умол-
чанию тип char является unsigned (при помощи опции -R TCC,
либо выбором в меню Options \! Compiler \! CodeGeneration
опцию Unsigned Characters), чтоприведет к обнулению старшего
байта независимо от значения младшего байта.

Широкие символьные константы (только C)

Символьная константа, которой предшествует L, называет-
ся широкой символьнойконстантой и имеет тип данных wchar_t
(интегральный тип, определяемый в stdef.h). Например,

x = L ‘AB’;

Константы с плавающей точкой

Константа с плавающей точкой состоит из шести частей:

— десятичное целое
— десятичная точка
— десятичное дробное
— e или E и целочисленная экспонента со знаком (опционально)
— суффикс типа: f или F, либо l или L (опционально)

Десятичное целое или десятичное дробное (но не то и
другое) можно опустить. Можно опустить либо десятичную точ-
ку, либо букву e (или E) с целочисленной экспонентой со зна-
ком (но не то и другое). Эти правила позволяют выполнять за-
пись чисел как в обычной, так и в научной (экспоненциальной)
форме.

Отрицательные константыс плавающей точкой берутся как
положительные константы с префиксом — унарной операцией ми-
нус (-).

Примеры:
————————————-
Константа Значение
————————————-
6
23.45e6 23.45 x 10

.0 0

0. 0
0
1. 1.0 x 10 = 1.0

-1.23 -1.23
-5
2e-5 2.0 x 10
10
3E+10 3.0 x 10

— 19 —
34
.09E34 0.09 x 10
————————————-

Константы с плавающей точкой — типы данных

При отсутствии каких-либо суффиксов константы с плаваю-
щей точкой имеют тип данных double. Однако, вы можете прис-
воить константе с плавающей точкой тип данных float, добавив
к ней суффикс f или F. Аналогичным образом, суффиксl илиL
присвоит константе тип данных long double. В следующей таб-
лице показаны диапазоны значений, которые могут принимать
типы данных float, double и long double.

Размеры и диапазоны
констант с плавающей точкой Turbo C++ Таблица 1.8
————————————————————
Тип Размер (в битах) Диапазон значений
————————————————————
-38 38
float 32 3.4 x 10 до 3.4 x 10
-308 308
double 64 1.7 x 10 до 1.7 x 10
-4932 4932
long double 80 3.4 x 10 до 1.1 x 10
————————————————————
Перечислимые константы

Перечислимые константы представляют собой идентификато-
ры, определенные в объявлениях типа enum.Эти идентификаторы
обычно выбираются как мнемонические обозначения для удобства
обращения с данными. Перечислимые константы имеютцелочислен-
ный тип данных. Они могут быть использованы в любых выраже-
ниях, в которых допустим целочисленныйтип данных. Используе-
мые идентификаторы должны быть уникальными в пределах
контекста объявления enum.

Значения, принимаемые перечислимыми константами,зависят
от формата объявления перечислимого типа и присутствия опци-
ональных инициализаторов. В данном примере,

enum team (* giants, cubs, dodgers *);

giants, cubs и dodgers это перечислимые константы типа
team, которые могут быть назначены любым переменным типа
team или любой другой переменной целочисленного типа. Значе-
ния, принимаемые перечислимыми константами,

giants = 0, cubs = 1, dodgers = 2

при условии отсутствия явных инициализаторов. В следую-
щем примере,

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *