46019 (665326), страница 3

Файл №665326 46019 (Turbo C++ Programer`s guide) 3 страница46019 (665326) страница 32016-07-31СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 3)

case _es near _ss

catch _export new static

cdecl extern operator struct

char far pascal switch

class float private template

const for protected this

continue friend public typedef

_cs goto register union

default huge _regparam unsigned

delete if return virtual

do inline _saverages void

double int _seg volatile

while

Расширения Turbo C++ относительно ANSI C Таблица 1.2

cdecl _export _loadds _saveregs

_cs far near _seg

_ds huge pascal _ss

_es interrupt _regparam

Ключевые слова, специфичные для C++ Таблица 1.3

catch friend operator public

class inline private template

delete new protected this

virtual

Регистровые

псевдопеременные Turbo

C++

Таблица

1.4

_AH _BL

_AL _BP

_AX _BX

_BH _CH

_SP

_CL _DL

_CX _DX

_DH _FLAGS

_DI _SI

Идентификаторы

Формальное определение идентификатора имеет следующий вид:

идентификатор:

не-цифра

идентификатор не-цифра

идентификатор цифра

не-цифра: одно из

a b c d e f g h i j k l m n o p q r s t u v w x y z _

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

цифра: одно из

0 1 2 3 4 5 6 7 8 9

Ограничения состава и длины идентификаторов

Идентификаторы представляют собой произвольные имена любой длины, присваиваемыеклассам, объектам, функциям,переменным, определяемым пользователем типам данных ит.д. Идентификаторы могут содержать буквы от A до Z и от a до z, символ подчеркивания (_) и цифры от 0 до 9. Существует только два ограничения:

1. Первый символ должен являться буквой или символом подчеркивания.

Отметим, что идентификаторы в Turbo C++ значимы до любой длины.

2. По умолчанию Turbo C++ распознает только первые 32 символа в качестве значимых. Число значимых символов может быть уменьшено при помощи меню или опций командной строки, но не может быть увеличено. Используйте опцию -In TCC, либо опцию меню O\!C\!S\!Identifier Length, где 1 <= n <= 32.

Идентификаторы и учет регистра

Идентификаторы в Turbo C++ учитывают регистр, и таким образом, Sum, sum и suM - это различные идентификаторы.

Глобальные идентификаторы, импортируемые из других модулей, подчиняются тем же правилам наименования и длины значимости имени, что и обычные идентификаторы. Однако, Turbo C ++ включает в себя опциюподавления учета регистра, обеспечивающую совместимость при компоновке с модулями на языках, не учитывающих регистр. Можно отменить учет регистра для глобальных идентификаторов, установив в диалоговом поле Linker в соответствующее состояние поле Options \! Linker \! Case-Sensitive Link,либо использовав опцию командной строки /C при запуске TLINK. В таком режиме глобальные имена Sum и sum рассматриваются как идентичные, и при компоновке может быть выдано предупреждение "Duplicate symbol" ("Повторяющиеся символические имена").

Исключение из этих правил составляютидентификаторы типа pascal, которые при компоновке всегда преобразовываются к верхнему регистру.

Уникальность и контекст идентификаторов

Хотя имена идентификаторов могут быть произвольными (в пределах изложенных правил), в случае использования одного и того же имени для более чем одногоидентификаторав пределах одного контекста и разделении имиодногопространства имен возникает ошибка. Повторение имен в различных пространствах имен допустимо всегда, независимо от контекста. Правила рассматриваютсяпри обсуждении контекста, начиная со стр. 29 оригинала.

Константы

Константами называются лексемы, представляющие собой фиксированные числовые или символьные значения. TurboC++ поддерживает четыре классаконстант: сплавающей точкой, целочисленные, перечислимого типа и символьные.

Тип данных константы определяется компилятором по таким ключевым характеристикам, как числовое значениеи формат, используемые при записи константы в исходном коде. Определение формата константы показано в следующей таблице:

Константы - определение формата Таблица 1.5

константа:

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

целочисленная-константа

перечислимая-константа

символьная-константа

константа-с-плавающей-точкой:

дробная-константа <суф-

фикс-константы-с-плавающей-точкой>

последовательность-цифр экспоненциальная часть

дробная константа:

.

.

экспоненциальная-часть:

e последовательность-цифр

E последовательность-цифр

знак: одно из

+ -

последовательность-цифр:

цифра

последовательность-цифр цифра

суффикс-константы-с-плавающей-точкой: одно из

f l F L

целочисленная-константа:

десятичная-константа

восьмеричная-константа

шестнадцатиричная-константа <суффикс-целочислен-

ной-константы>

десятичная-константа:

цифра-кроме-нуля

десятичная-константа цифра

восьмеричная-константа:

0

восьмеричная-константа восьмеричная-цифра

шестнадцатиричная-константа:

0 x шестнадцатиричная-цифра

0 X шестнадцатиричная-цифра

шестнадцатиричная-константа шестнадцатиричная-цифра

цифра-кроме-нуля: одно из

1 2 3 4 5 6 7 8 9

восьмеричная-цифра: одно из

0 1 2 3 4 5 6 7

шестнадцатиричная-цифра: одно из

0 1 2 3 4 5 6 7 8 9

a b c d e f

A B C D E F

суффикс-целочисленной-константы:

суффикс-константы-без-знака

суффикс-длинной-константы

суффикс-константы-без-знака: одно из

u U

суффикс-длинной-константы: одно из

l L

перечислимая-константа:

идентификатор

символьная-константа:

последовательность-символов-c

последовательность-символов-c:

символ-c

последовательность-символов-c символ-c

символ-c:

любой символ из исходного набора символов, за исключением символов одинарной кавычки ('), обратной наклонной черты (\) или управляющей-последовательности символа новой строки.

управляющая-последовательность: одно из

\* \' \? \\

\a \b\f \n

\o \oo\ooo \r

\t \v\Xh... \xh...

Целочисленные константы

Целочисленные константы могут быть десятичными (основание системы счисления 10), восьмеричными (основание 8)или шестнадцатиричными (основание 16). При отсутствии переопределяющих суффиксов типданныхцелочисленной константы выводится из ее значения, как показано в таблице 1.6. Отметим, что правила для десятичных и не-десятичных констант различны.

Десятичные константы

Допустимыми являются десятичные константы величиной от 0 до 4,294,967,295. Константы, выходящие за указанные пределы, вызывают ошибку. Десятичныеконстанты не могут иметь ведущие нули. Целочисленнаяконстанта с ведущим нулем рассматриваетсякак восьмеричная. Таким образом,

int i = 10; /* десятичное 10 */

int i = 010; /* десятичное 8 */

int i = 0; /* десятичное 0 = восьмеричному 0! */

Отрицательные константы- это просто константы без знака, к которым применена унарная операция минус.

Восьмеричные константы

Все константыс ведущим нулем рассматриваются как восьмеричные.Если восьмеричная константа содержит недопустимые цифры 8 или 9, выдается сообщение об ошибке. Ошибка будет также выдаваться при превышении восьмеричной константой значения 037777777777.

Шестнадцатиричные константы

Все константы, начинающиеся с 0x (или 0X) рассматриваются как шестнадцатиричные. Шестнадцатиричные константы,превышающие 0xFFFFFFFF, приводят к ошибке.

Суффиксы длинных констант и констант без знака

Если законстантой следует суффикс L (или l), то такая константа будет представлена как длинная (типа long).Аналогичным образом, суффикс U (или u) делает константу константой без знака (unsigned). Если численное значение константы превышает десятичное 65,535, независимо от используемого основаниясистемы счисления, то такая константа будет иметь тип unsigned long. Суффиксы можно указывать для одной и той же константы в произвольном порядке и набирать в любом регистре: ul, lu, UL и т.д.

Тип данных константы при отсутствии каких-либо суффиксов вообще (U, u, L или l) берется из следующей таблицы,первыйже, который удовлетворяет требованиям величины этой константы:

-----------------------------------------------------------

десятичная int, long int, unsigned long int

восьмеричная int, unsigned int, long int, unsigned long int

шестнадцатиричная int, unsigned int, long int, unsigned long int

-----------------------------------------------------------

Если константа имеет суффикс U или u, то ее тип данных будет первым из типов unsigned int, insigned long int, который удовлетворит требованиям ее величины.

Если константа имеет суффикс L или l, то ее тип данных будет первым из типов long int, unsigned long int, который удовлетворит требованиям ее величины.

Если константа имеет оба суффикса u и l (ul, lu, Ul, lU,uL, Lu, LU или UL), то она будет иметь тип данных unsigned long int.

В таблице 1.6 сведены представления целочисленных констант для всех трех систем счисления. Указанные типы данных предполагают отсутствие переопределяющих суффиксов L или U.

Целочисленные константы Turbo C++ без L или U Таблица 1.6

Десятичные константы

0 до 32,767 int

32,768 до 2,147,483,647 long

2,147,483,648 до 4,294,967,295 unsigned long

> 4294967295 Генерируется ошибка

Восьмеричные константы

00 до 077777 int

0100000 до 0177777 unsigned int

02000000 до 017777777777 long

020000000000 до 037777777777 unsigned long

> 037777777777 Генерируется ошибка

Шестнадцатиричные константы

0x0000 до 0x7FFF int

0x8000 до 0xFFFF unsigned int

0x10000 до 0x7FFFFFFF long

0x80000000 до 0xFFFFFFFF unsigned long

> 0xFFFFFFFF Генерируется ошибка

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

Символьная константа - этоодин или более символов, заключенных в одинарные кавычки, например 'F', '=', '\n'. В C константы изодногосимвола имеюттип Int и имеют внутреннее представление16 бит, в то времякак старший байт слова заполняется нулем или знаком. В C++ константа из одного символа имеет тип char. Многосимвольные константы как в C, так и в C ++, имеют тип данных Int.

Управляющие последовательности

Для введения управляющих последовательностей,позволяющих получить визуальное представление некоторых не имеющих графическогоаналога символов, используется символ обратной наклонной черты (\). Например, в качестве одного символа новой строки можно записать константу \n.

Обратнаянаклонная черта используетсяс восьмеричными или шестнадцатиричными числами для представления ASCII-символами управляющего кода, соответствующемуэтому значению; например, '\03' вместо Ctrl-C или '\x3F' вместо вопросительного знака. В управляющей последовательности может содержаться строка длиной до трех восьмеричных илилюбое число шестнадцатиричных цифр,при условии, чтоданноезначение лежит в допустимом для типа данных char диапазоне (от 0 до 0xff для Turbo C++). Большие значения ведутк появлению ошибки компиляции "Numeric constant too large" ("числовая константа слишком велика"). Например, восьмеричное число \777 больше максимально допустимого значения \377, и вызовет генерирование ошибки. Первое же не-восьмеричноеили не-шестнадцатиричное значение, встреченное в восьмеричнойили шестнадцатиричной управляющей последовательности, означает конец данной последовательности.

В исходной версии 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

\b

\f

\n

\r

\t

\v

\\

0x07BELЗвуковой сигнал

0x08BSЗабой

0x0CFFПеревод бланка

0x0ALFНовая строка (перевод строки)

0x0DCRВозврат каретки

0x09HTТабуляция (горизонтальная)

0x0BVTВертикальная табуляция

0x5c\Обратная наклонная черта

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

\' 0x27 ' Одинарная кавычка (апостроф)

\" 0x22 " Двойная кавычка

\? 0x3F ? Вопросительный знак

\OлюбыеO = строка до трех восьмиричных цифр

\xH любыеH = строка шестнадцатиричных цифр

\XH любыеH = строка шестнадцатиричных цифр

-----------------------------------------------------------

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

Turbo C++ поддерживает также двух-символьные константы (например, 'An', '\n\t' и '\007\007'). Эти константы представлены 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

Характеристики

Тип файла
Документ
Размер
2,71 Mb
Тип материала
Учебное заведение
Неизвестно

Список файлов реферата

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6511
Авторов
на СтудИзбе
302
Средний доход
с одного платного файла
Обучение Подробнее