Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Справочник по функциям С++.doc
Скачиваний:
168
Добавлен:
02.05.2014
Размер:
3.57 Mб
Скачать

Ellipse

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

НазначениеВычерчивание эллиптической дуги.

Синтаксис #include<graphics.h>

void far ellipse(int x, int y, int stangle,

int endangle, int xradius, int yradius);

Прототип вgraphics.h

Замечанияellipse чертит эллиптическую дугу с центром в

(x,y) и горизонтальной и вертикальной осями,

заданными в xradius и yradius соответственно.

ellipse чертит от stange до endangle. Если

stangle=0, а endangle=360, то вызов ellipse

приведет к вычерчиванию полного элипса.

Углы для arc, ellipse и pieslice формируются

против часовой стрелки. При этом 0 градусов со-

ответствует 3 часам, 90 градусов соответствуют

12 часам и т.д.

Замечание: при вычерчивании дуги, окружности,

эллипса и сектора для определения типа линии

используется параметр thickness а не linestyle.

ВозвращаемоеНет.

значение

ПереносимостьДанная функция работает только на IBM PC и сов-

местимых моделях при наличии соответствующих

графических адаптеров.

Смотри также arc, circle, fillellipse, getarccoords, sector

Примеры Смотри arc

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

_emit

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

НазначениеВставка литерных значений в объектный код.

Синтаксисvoid _emit(аргумент,...);

Прототип вdos.h

ЗамечанияФункция _emit_ позволяет вставлять литеры не-

посредственно в объектный код во время компили-

рования прграммы. Она используется для генери-

рования команд в машинном коде без применения

ассемблирования.

_emit_ может быть использована в интегрирован-

ном окружении Турбо Си, когда нет возможности

воспользоваться внутренним ассемблером.

Обычно аргументом _emit_ является единственный

байт кода машинной команды. Однако возможности

фунуции позволяют строить более сложные коман-

ды.

Предупреждение! Данная функция может быть ис-

пользована только программистами, очень хорошо

владеющими машинным яазыком процессоров семейс-

тва 80х86. Используя _emit_, вы можете сделать

абсолютно все: разместить произвольные байты в

командном коде вашей функции, произвольно изме-

нять значения машинных регистров и ячеек памяти

и т. д., Турбо Си не будет знать о ваших изме-

нениях и не будет их контролировать, как это

делается при использовании внутреннего ассембе-

ра (например Турбо Си распознает использование

регистров SI и DI), и если ваши изменения будут

некорректны, ваша программа может привести к

сбою машины.

_emit_ позволяет использовать произвольное ко-

личество аргументов. Аргументы функции _emit_,

в отличие от агументов других библиотечных

функций Турбо Си, никокда не преобразовываются

к каким либо определенным типам данных.

На аргументы функции _emit_ накладываются спе-

циальные ограничения. Они должны позволить ини-

циализировать статический объект памяти. А

именно, целую или вещественную константу, или

адрес статического объекта. Значения таких вы-

рыжений записываются в объктном коде в точке

вызова функции _emit_. В качестве аргументов

функции допускается также использование адреса

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

метров плюс (или минус) константное смещение,

для таких аргументов используется смещение ад-

реса относительно значения регистра BP.

Количество байт размещаемых, функцией _emit_

определяется типом аргументов, за исключением

следующих случаев:

* Если целочисленная знаковая константа (напри-

мер 0х90) находится в диапазоне от 0 до 255,

она воспринимается как символ.

* Если используется адрес автоматической пере-

менной или параметра, записывается один байт,

если смещение адреса относительно значения

регистра BP находится в диапазоне от -128 до

127; иначе записывается слово.

Единичный байт записывается, например при вызо-

ве:

_emit_(0х90);

dir> Если же вам необходимо записать слово а

значение аргумента меньше 255, простейший спо-

соб сделать это - приведение к беззнаковому ти-

пу данных, как например:

_emit_(0хB8, (unsigned)17);

или

_emit_(0хB8, 17u);

Два и четыре байта адреса записываются в объек-

тный код при использовании адресов void near *

или void far * соответственно.

ВозвращаемоеНет.

значение

Переносимость_emit_ доступна только для процессоров семейс-

тва 80х86.

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

enable

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

НазначениеВключение прерываний.

Синтаксис #include<dos.h>

void enable(void);

Замечанияenable предназначен для предоставления прог-

раммисту возможности гибкого управления преры-

ваниями.

Макрос enable включает обработку прерываний

внешних устройств.

ВозвращаемоеНет.

значение

ПереносимостьЭтот макрос предназначены только для процессора

8086.

Смотри также disable, getvect

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

eof

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

НазначениеКонтролирует достижение конца файла.

Синтаксис int eof(int handle);

Прототип вio.h

Замечанияeof определяет достигнут ли конец файла, свя-

занного с дескриптором handle.

ВозвращаемоеЕсли текущая позиция - конец файла, то eof

значениевозвращает 1, иначе возвращается 0.

Возвращаемое значение (-1) указывает на ошибку,

и errno устанавливается в

EBADF - неверный номер файла

Смотри также cleaerr, feof, ferror, perror

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