рефераты

рефераты

 
 
рефераты рефераты

Меню

Реферат: Turbo C++ Programer`s guide рефераты

Реферат: Turbo C++ Programer`s guide

TURBO C++

Version 1.0

Programmer's Guide

Оглавление

Введение................................................... Содержание данного руководства............................

Глава 1                Стандарт языка Turbo C++...................

Синтаксис и терминология..................................

Грамматические правила структуры фраз и лексики языка.....

Пробельные символы........................................

"Склеивание" строк символом \........................... Комментарии...............................................

Комментарии C...........................................

Вложенные комментарии...................................

Комментарии C++.........................................

Разделители комментариев и пробелы...................... Лексемы...................................................

Ключевые слова..........................................

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

Константы...............................................

Константы и их внутреннее представление................. Описание операций.........................................

Унарные операции ...................................... Бинарные операции....................................... Пунктуаторы ..........................................

Объявления................................................ Объекты .............................................. Именующие выражения (Lvalues) ........................ Типы и классы памяти ................................. Контекст ............................................. Видимость............................................... Продолжительность....................................... Единицы трансляции ..................................... Компоновка .............................................

Синтаксис объявления...................................... Предварительные определения .......................... Возможные объявления ................................. Внешние объявления и определения ..................... Спецификаторы типа ..................................... Таксономия типа ...................................... Фундаментальные типы ................................. Инициализация........................................... Простые объявления...................................... Спецификаторы класса памяти............................. Модификаторы............................................ Сложные объявления и деклараторы........................

Указатели.................................................

Указатели объектов......................................

Указатели функций....................................... Объявления указателей ................................ Указатели и константы ................................ Арифметические операции с указателями ................ Преобразования указателей............................... Объявления ссылок в С++ ..............................

Массивы ................................................ Функции...................................................

Объявления и определения ............................. Объявления и прототипы ............................... Объявления ............................................. Объявления формальных параметров ..................... Вызовы функций и преобразования аргументов .............

Структуры................................................. Структуры без тегов и определения типов (typedef)....... Объявления компонентов структуры ..................... Структуры и функции .................................. Доступ к компоненту структуры ........................ Выравнивание по границе слова ........................ Пространство имен структур ............................. Неполные объявления .................................. Битовые поля .........................................

Объединения............................................... Объявления объединений ................................

Перечислимые данные.......................................

Выражения................................................. Выражения и Turbo C++ ................................ Последовательность вычислений ........................ Ошибки и переполнения ................................

Семантика операций........................................

Постфиксные и префиксные операции....................... Операции инкремента и декремента ..................... Унарные операции ..................................... Операция sizeof ..................................... Операции типа умножения .............................. Операции типа сложения ............................... Операции поразрядного сдвига ......................... Операции отношения ..................................... Операции типа равенства .............................. Операция поразрядного И & ............................. Операция поразрядного исключающего ИЛИ ^............... Операция поразрядного включающего ИЛИ \!............... Операция логического И &&.............................. Операция логического ИЛИ \!\!.......................... Условная операция ?:.................................... Операции присвоения .................................. Операция с запятой......................................

Операторы................................................. Блоки ................................................ Операторы-с-метками .................................. Операторы-выражения .................................. Операторы выбора ..................................... Операторы итерации ..................................... Операторы перехода .....................................

С++....................................................... Ссылки ............................................... Операция доступа к контексту ......................... Операции new и delete ................................ Классы ............................................... Виртуальные базовые классы ............................. "Друзья" классов (friend)............................... Конструкторы и деструкторы ............................. Конструкторы ......................................... Деструкторы .......................................... Перегруженные операции ............................... Операции-функции ...................................... Виртуальные функции..................................... Абстрактные классы ..................................... Контекст С++ .........................................

Директивы препроцессора Turbo C++.........................

Пустая директива # .....................................

Директивы #define и #undef ............................. Включение файлов директивой #include ................. Условная компиляция .................................. Директива управления нумерацией строк #line .......... Директива #error ..................................... Директива #pragma....................................... Предопределенные макросы .............................

Глава 2.  Перекрестные ссылки по библиотеке исполняющей системы................................................... Зачем нужен доступ к исходным кодам библиотеки исполняющей

системы.................................................. Файлы заголовка Turbo C++................................. Категории библиотечных подпрограмм........................

Глава 3              Потоки С++..................................

Новые потоки вместо старых................................

Использование потоков 2.0................................. Что такое поток? ...................................... Библиотека iostream .................................... Четыре стандартных потока ............................. Вывод ................................................ Ввод.................................................... Инициализация потоков ................................. Простой ввод/вывод в файл ............................. Состояния ошибки потока ввода/вывода....................

Использование потоков прошлых версий......................

Рекомендации по переходу к потокам версии 2.0............. Глава 4      Модели памяти, операции с плавающей точкой и

оверлеи...................................................

Модели памяти.............................................

Регистры 8086...........................................

Сегментация памяти......................................

Указатели...............................................

Шесть моделей памяти.................................... Программирование с использованием различных моделей памяти

адресные модификаторы...................................

Объявление ближних или дальних функций ................ Объявление указателей near, far или huge................ Использование библиотечных файлов....................... Компоновка смешанных модулей ..........................

Опции типа чисел с плавающей точкой....................... Эмулирование платы 80х87................................ Получение кода только для машин с 80х87 ............... Получение кода без операций с плавающей точкой ........ Опция быстрых вычислений с плавающей точкой ........... Переменная операционной среды 87........................ Регистры и 80х87 ......................................

Математические операции с комплексными числами............

Использование двоично-десятичной (BCD) математики....... Использование оперативной памяти Turbo C++................ Оверлеи (VROOMM)..........................................

Работа программ с оверлеями.............................

Требования..............................................

Использование оверлеев .................................

Разработка программ с перекрытиями...................... Свопинг ............................................... Дополнительная память (EMS)............................. Расширенная память (Ext)................................

Глава 5              Видео функции.......................

Несколько слов о видео режимах............................ Несколько слов о текстовых и графических окнах............

Что такое окно ? ..................................... Что такое графическое окно ? .......................... Координаты..............................................

Программирование в текстовом режиме....................... Функции консольного ввода/вывода ....................... Текстовые окна.......................................... Тип text_mode........................................... Цвета текста .......................................... Высокоскоростной вывод: переменная directvideo .........

Программирование в графическом режиме.....................

Функции библиотеки graphics.............................

Управление цветом на CGA................................ Глава 6....................................................

Смешанное программирование................................ Последовательности передачи параметров ...............

Подготовка к вызову .ASM из Turbo C++..................... Упрощенные сегментные директивы ....................... Стандартные сегментные директивы ..................... Определение данных - констант и переменных ............. Определение глобальных и внешних идентификаторов .....

Подготовка к вызову Turbo C++ из .ASM.....................

Ссылки к функциям....................................... Ссылки к данным ......................................

Определение подпрограмм на языке ассемблера............... Передача параметров..................................... Обработка значений возврата ............................

Соглашения о регистрах....................................

Вызов функций С из модулей .ASM...........................

Псевдопеременные, встраиваемые ассемблерные коды и функции прерывания...............................................

Псевдопеременные ..................................... Встраиваемые ассемблерные коды ....................... Функции прерывания...................................... Практические примеры программ низкого уровня .........

Глава 7                   Сообщения об ошибках......................

Сообщения об ошибках времени выполнения................... Сообщения об ошибках компилятора.......................... Фатальные ошибки.......................................... Ошибки.................................................... Предупреждения............................................

Приложение АСтандарты ANSI, зависящие от реализации................................................

Введение

Документ "Начало работы" содержит обзор всего комплекта документации к Turbo C++. Информация о том, как с наибольшей эффективностью использовать Руководства по Turbo C++, содержится во введении и главе 2 этого документа.

Данное руководство содержит материалы для углубленного изучения программирования и предназначено для тех, кто уже хорошо умеет программировать (на C, либо на другом языке программирования). Здесь содержится справочник по языку C, перекрестные ссылки по библиотеке исполняющей системы и информациЯ по программированию с использованием потоков C++, моделей памяти, плавающей точки, оверлеев, видео-функций, интерфейса с языком ассемблера, а также сообщения об ошибках исполняющей системы и компилятора.

Прочесть документ "Начало работы" следует, если:

1. Вы ранее никогда не программировали ни на одном языке.

2. Вы ранее программировали, но не на C, и желаете прочесть введение в язык C.

3. Вам нужна информация о том, как установить на компьютере Turbo C++.

В Руководстве пользователя находится информация об интегрированной среде Turbo (включая редактор), администраторе управляющей системы, компиляторе командной строки, дополняющих Turbo C++ утилитах и макроязыке редактора Turbo.

Справочник по библиотеке содержит в алфавитном порядке листинг функций и глобальных переменных Turbo C++.

Содержание данного руководства

Глава 1:"Стандарт языка Turbo C++" описывает язык Turbo C++.  Здесь приводятся все отличия от стандарта ANSI C. Данная глава также включает справочник по языкам C и C++.

Глава 2: "Перекрестные ссылки по библиотеке управляющей системы" содержит информацию об исходных кодах библиотеки исполняющей системы. Здесь также описаны файлы заголовков и приводятся перекрестные ссылки по библиотеке управляющей системы, организованные по субъектам библиотеки. Например, если вы хотите выяснить, какие функции относятся к графике, вы должны обратиться к разделу данной главы "Графика".

Глава 3:"Потоки C++" рассказывает, как использовать библиотеку потоков C++.

Глава 4:"Модели памяти, операции с плавающей точкой и оверлеи" рассматривает модели памяти, программирование со смешанными моделями памяти, вычисления с плавающей точкой и оверлеями.

Глава 5:"Видео-функции" посвящена обработке в Turbo C++ текстов и графических изображений.

Глава 6:"Интерфейс с языком ассемблера" говорит о том, как нужно писать программы на языке ассемблера, чтобы они правильно работали при вызове из программ на Turbo C++.

Глава 7: "Сообщения об ошибках" перечисляет и объясняет все фатальные ошибки, ошибки и предупреждения исполняющей системы и компилятора, а также дает возможные рекомендации по их устранению.

Приложение А: "Стандарты ANSI, зависимые от реализации" описывает те аспекты стандарта ANSI C, которые были определены с некоторой степенью свободы или не были определены вообще в стандарте ANSI. Следовательно, эти аспекты могут варьироваться в зависимости от конкретной реализации. Данное приложение сообщает о том, как Turbo C++ поступает в отношении каждого из этих аспектов.

Глава 1                Стандарт языка Turbo C++

В данной главе дается подробное справочноеруководство программиста по языку Turbo C++. Оно не является руководством по изучению языка, а скорее формальным описанием языков C и C++ в их реализации программным продуктом Turbo C++. В данной главе описываются грамматические правила записи структуры фраз и лексики языка, а также дается подробное изложение имеющихся директив препроцессора. При формулировке синтаксиса используется модифицированная запись Бэкуса-Науэра,при необходимости сопровождаемая кратким описанием и примерами программ.

Turbo C++ реализует стандарт ANSI C, разработанный техническим комитетом X3J11 между июнем 1983 и декабрем 1988 гг., с некоторыми расширениями, оговариваемыми вданномтексте. Вы имеете возможность устанавливать опции компилятора, которые будут предупреждать вас о том, чтотакие расширения встретилисьпри работе компилятора. Вы можете также настроить компилятор таким образом, чтобы он рассматривал ключевые слова расширений Turbo C++ в качестве нормальных идентификаторов (см. Главу 4,"Компилятор командной строки", в Руководстве пользователя).

Существуют также "согласующие" расширения, включаемые посредством директив #pragma, предлагаемых стандартом ANSI C, предназначенные для работы с нестандартными, зависимыми от конкретной реализации средствами языка.

Turbo C++ является также полной реализацией AT&TC++ версии 2.00, объектно-ориентированного надмножества C, разработанного Бьерном Строструпом из AT&T Bell Laboratories. Помимо того,что C++ дополняет C многими новыми средствами и возможностями, он также и отличен от него в большей или меньшей степени. В настоящей главе содержатся замечания по этим отличиям. Все средства языка Turbo C++,имеющие отклонения от C++, более подробно рассматриваются, начиная со страницы 98.

Синтаксис и терминология

Синтаксические определения состоят из имени определяемого в настоящий момент и не определенного где-либо выше термина, за которым следует двоеточие (:). Альтернативы обычно следуют за этим в отдельных строках, но могут также помещаться и в одной строке; в таком случае им предшествует фраза "одно из". Например,

внешнее-определение:

определение-функции

объявление

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

0 1 2 3 4 5 6 7

Опциональные элементы конструкции заключаются в угловые скобки:

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

Страницы: 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, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40