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

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

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

Директива #pragma warn

Данная директива позволяет переопределять конкретные опции командной строки -wxxx (или управлять опцией Display Warnings в диалоговом поле Options \! Compiler \! Messages).

Например, если в вашем исходном коде имеются директивы

#pragma warn +xxx

#pragma warn -yyy

#pragma warn .zzz

то выдача предупреждения xxx будет разрешена (даже если в меню Options \! Compiler \! Messages она была переведена в состояние off), предупреждения yyy запрещена, а статус выдачи сообщения zzz будет восстановлен в то состояние, которое было к моменту начала компиляции файла.

Полный список трехбуквенных сокращений и сообщений, к которым они относятся, см. в Главе 4, "Компилятор командной строки" в Руководстве пользователя.

Предопределенные макросы

Turbo C++ имеет следующие предопределенные глобальные идентификаторы. За исключением __cplusplus, каждое из них и начинается, и заканчиваетсядвумя символами подчеркивания (__). Эти макросы также называют буквальными константами.

__CDECL__

Данный макрос специфичен для Turbo C++. Он сообщает о том, что флаг -p не использовался (меню Cflling Conventions...C) : он устанавливается равным целочисленной константе 1, если -pне использовался; в противном случае он неопределен.

Следующие символические имена определяются согласно выбранной во время компиляции модели памяти:

__COMPACT__ __MEDIUM__

__HUGE__ __SMALL__

__LARGE__ __TINY__

Для конкретной компиляции определенным является только один из этих макросов; прочие, по определению, не определены. Например, если при компиляциивыбрана модель памяти small, то макрос __SMALL__ определен, а остальные неопределены, поэтому директива

#if defined(__SMALL__)

даст значение "истина", а

#if defined(__HUGE__)

либо любая другая из оставшихся) даст значение "ложь". Фактическое значение любого из этих макросов, когда он определен, равно 1.

__cplusplus

Данный макрос специфичен для Turbo C++. Он позволяет написать модуль, который в некоторых случаях будет компилироваться в С, а в некоторых - в С++.Использование условных директив компиляции позволяет управлять, какие части программы для С и С++ будут включены в компиляцию.

__DATE__

Данный макрос дает дату начала обработки препроцессором данного исходного файла (в виде строкового литерала).

Каждое включение __DATE__ в данный файл дает одно и то же значение, независимо от того, сколько времени продолжается обработка файла препроцессором. Дата имеет форму mmmddyyyy,где mmm это месяц (Jan, Feb и т.д.), dd равно числу месяца (от 1 до 31, причем если это число меньше 10, то первый символ d равен пробелу), а yyyy это год (1990, 1991 и т.д.)

__FILE__

Данныймакрос дает имя текущего обрабатываемого препроцессором исходного файла (в виде строкового лите-

рала). Когда препроцессор обрабатывает директиву #include

или #line, либопри завершении обработки включаемого файла,

данный макрос соответствующим образом меняет свое значение.

__LINE__

Данный макрос дает количество обработанных препроцессором к данному моменту строк текущего исходного файла. Обычно первая строка исходного файла определяется с номером 1, хотя на это может повлиять директива #line. Информацию о директиве #line см. на стр. 144 оригинала.

__MSDOS__

Данный макрос специфичен для Turbo C++. Он дает целочисленную константу 1 для всех случаев компиляции.

__OVERLAY__

Данный макрос специфичен для С++. Он предопределен равным 1, еслимодуль компилируетсяс опцией -Y (включена поддержка оверлейных структур). Если оверлейные структуры не поддерживаются, то данный макрос неопределен.

__PASCAL__

Данный макрос специфичен для С++. Он сообщает о том, чтобыл использован флаг -p. Макрос установлен равным целочисленной константе 1, если флаг -p использовался; в противном случае он неопределен.

__STDC__

Данный макрос определен равным константе 1, если компиляция выполняется при установленном флаге совместимости с ANSI (-Aили менюANSI Keywords Only...On); в противном случае макрос неопределен.

__TIME__

Данный макрос дает время начала обработки препроцессором текущего исходного файла (в виде строкового литерала).

Как и в случае макроса __DATE__, каждое включение __TIME__ будет содержать одно и то же значение, независимо от того, сколько времени продолжалась обработка файла. Он имеет формат hh:vv:ss, где hh это часы (от 00 до 23), mm это минуты (от 00 до 59), а ss это секунды (от 00 до 59).

__TURBOC__

Данный макрос специфичендля С++. Он дает номер текущей версии TurboC++ ввиде шестнадцатиричной константы. Например, версия 1.0 будет представлена в виде 0x0100.

Глава 2. Перекрестные ссылки по библиотеке исполняющей системы

Данная глава содержит обзор библиотечных подпрограмм Turbo C++ и включаемых файлов.

В данной главе

- объясняется, зачем вам могут понадобиться исходные коды библиотеки исполняющей системы Turbo C++

- перечисляются и описываются файлы заголовка

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

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

Подпрограммы Turbo C++содержатся в библиотечных файлах (Cx.LIB, CPx.LIB, MATHx.LIB и GRAPHICS.LIB). Поскольку TurboC++ поддерживает шесть различных моделей памяти, каждая модель, за исключением модели tiny, имеет свой собственный библиотечный файл и файл математических функций, в которых находятся версии этих подпрограмм специально для соответствующей модели памяти. (Модель tiny использует одни файлы с моделью small).

В С++ всегда нужно использовать прототипы. Дополнительную информацию о прототипах функций см. на стр.60 оригинала).

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

Библиотечные подпрограммы Turbo C++ объявляются со своими прототипами в одном или более файлов заголовка.

Зачем нужен доступ к исходным кодам библиотеки исполняющей системы

Библиотека исполняющей системы Turbo C++ содержит свыше 450 функций, относящихся к широкому диапазону задач: управление IBM PC на нижнем уровне, интерфейс с DOS, ввод/вывод, управление обработкой, манипуляции со строками и памятью, математические вычисления, сортировка и поиск, и т.д. Существует несколько веских причин, по которым вам может понадобиться доступ к исходным кодам этих функций:

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

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

- Когда вы не можете в точности выяснить, что конкретно делает та или иная функция, полезно взглянуть на ее исходный код.

- Вам может понадобиться убрать ведущие символы подчеркивания в символических именах С. Это можно сделать только имея доступ к исходным кодам функций библиотеки исполняющей системы.

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

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

Файлы заголовка Turbo C++

Файлы заголовка, определяемые стандартом ANCI C, соответственно обозначены на полях. Файлы заголовка С++ также обозначены на полях слева.

Файлы заголовка, называемые также включаемыми файлами, содержат объявления прототипов библиотечных функций. В них также находятся определения типов данных и символических имен констант библиотечных функций, а также глобальные переменные, определяемые TurboC++ и библиотечными функциями. Имена файлов заголовка и их содержимое в библиотеках Turbo C ++ следуют стандарту ANSI C.

alloc.h Объявляет функции управления памятью (распре-

деление и отмена распределения памяти и т.д.)

ANSI C assert.h Определяет отладочный макрос assert

C++ bcd.h Определяет класс С++ bcd и перегруженные опе-

рации для класса bcd и математические функции

для bcd

bios.h Объявляет различные функции, используемые при

вызове подпрограмм ROM BIOS IBM PC

C++ complex.h Объявляет комплексные математические функции С++

conio.h Объявляет различные функции, используемые при

вызове подпрограмм DOS ввода/вывода с консоли

ANSI C ctype.h Содержит информацию, используемую макросами символьной классификации и символьных преобразований (такими, как isalpha и toascii)

dir.h Содержит структуры, макросы и функции для

работы с директориями и путями доступа

dos.h Определяет различные константы и содержит объявления, необходимые при вызовах DOS и специальных вызовах 8086

ANSI C errno.h Определяет мнемонические константы кодов

ошибок

fcntl.h Определяет символические константы, исполь-

зуемые совместно с библиотечной подпрограммой

open

ANSI C float.h Содержит параметры подпрограмм обработки чисел с плавающей точкой.

C++ fstream.h Объявляет классы потоков С++, поддерживающие ввод-вывод в файлы

C++ generic.h Содержит макрос для объявлений родовых файлов

graphics.h Объявляет прототипы графических функций

io.h Содержит структуры и объявления подпрограмм

ввода/вывода низкого уровня

C++ iomanip.h Объявляет манипуляторы ввода/вывода потоков С++ и содержит макрос для создания параметри-

зованных манипуляторов

C++ iostream.h Объявляет подпрограммы (ввода/вывода) потоков базового (версии 2.0) С++

ANSI C limits.h Содержит параметры среды программирования, информацию об ограничениях времени компиляции, а также численные диапазоны интегральных типов

ANSI C locale.h Объявляет функции, содержащие информацию, специфичную для конкретной страны и языка

ANSI C math.h Объявляет прототипы математических функций; определяет макрос HUGE_VAL и объявляет структуру исключения, используемую подпрограммой matherr

mem.h Объявляет функции манипулирования памятью.

(Многие из них также определены в string.h)

process.h Содержит структуры и объявления для функций

spawn... и exec...

ANSI C setjmp.h Определяет тип jmp_buf, используемый функциями

longjmp и setjmp, и объявляет подпрограммы

longjmp и setjmp

share.h Определяет параметры, используемые в функциях,

работающих с разделением файла

ANSI C signal.h Определяет макросы, используемые для чтения списков аргументов функций, объявленных как принимающие переменное число аргументов (например, vprintf, vscanf и т.д.)

ANSI C stddef.h Определяет несколько общих типов данных и макросов

ANSI C stdio.h Определяет типы данных и макросы, необходимые для пакета стандартного ввода/вывода (Standard I/O Package), определенного Керниганом и Ритчи и расширенного в Системе UNIX V.

Определяет предопределенные потоки стандартного ввода/вывода stdin, stdout, stdprn и stderr, а также объявляет подпрограммы ввода/ вывода уровня потоков

C++ stdiostr.h Объявляет классы потоков С++ для использования в файловых структурах stdio FILE.

ANSI C stdlib.h Объявляет некоторые широко используемые подпрограммы: подпрограммы преобразования, подпрограммы поиска/сортировки и прочие

C++ stream.h Объявляет подпрограммы (ввода/вывода) потоков С++ (версии 1.2)

ANSI C string.h Объявляет несколько подпрограмм строковых манипуляций и манипуляций с памятью

C++ strstrea.h Объявляет классы потоков С++ для работы с байтовыми массивами в памяти

sys\stat.h Объявляет символические константы, используемые при открытии и создания файлов

sys\timeb.h Объявляет функцию time и структуру timeb,

возвращаемую time

sys\types.h Объявляет тип type_t, используемый функциями

времени

ANSI C time.h Определяет структуру, заполняемую подпрограммами преобразования времени asctime, localtime и gmtime, а также тип, используемый подпрограммами ctime, difftime, gmtime, localtime и stime; также содержит прототипы этих подпрограмм.

values.h Определяет важные константы, включая машинозависимые константы; обеспечивает совместимостью с системой UNIX V

Категории библиотечных подпрограмм

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

Подпрограммы классификации ------------------------------

Данные подпрограммы классифицируют символы ASCII как буквы, управляющие символы, знаки пунктуации, символы верхнего регистра и т.д.

isalnum (ctype.h) isascil (ctype.h) isdigt (ctype.h)

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

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

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

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