Справочник по функциям С++. Подпрограммы классификации Подпрограммы преобразования
Скачать 3.41 Mb.
|
ecvt----------------------------------------------------------------- Назначение Преобразование числа с плавающей точкой в стро- ку. Синтаксис char *ecvt(double value, int ndigit, int *decpt, int *sign); Замечания ecvt преобразует value в ноль-ограниченную строку из ndigit цифр и возвращает указатель на эту строку. Десятичная точка позиционируется относительно начала строки по значению decpt (отрицательное значение decpt относится к возв- ращаемым знакам слева). Если знак результата отрицателен, то значение слова, указываемого sign, является ненулевым, иначе оно равно 0. Цифра нижнего порядкя округляется. Возвращаемое ecvt возвращает указатель на статически распре- значение деленную строку цифр, содержимое которой пере- пиcывается при каждом вызове ecvt. Переносимость Доступна в системах UNIX. Смотри также atof, atoi, atol, fcvt, gcvt, printf ----------------------------------------------------------------- ellipse----------------------------------------------------------------- Назначение Вычерчивание эллиптической дуги. Синтаксис #include 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. ----------------------------------------------------------------- |