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

Longjmp

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

НазначениеВыполняет нелокальный переход.

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

void longjmp(jmp_buf env, int val);

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

ЗамечанияВызов longjmp восстанавливает сохраненное

(функцией setjmp) состояние задачи и возвраща-

ется таким образом,что кажется, что setjmp

возвратилось со значением val.

Состояние задачи это:

* все регистры сегментов(CS,DS,ES,SS)

* регистровые переменные(SI,DI)

* указатель стека(SP)

* указатель ограничения(FP)

* флаги

Состояние задачи достаточно информативно, чтобы

setjmp и longjmp использовать для вызова соп-

рограмм. Программа, которая вызывает setjmp и

устанавливает env, должна быть активной и не

завершаться, пока longjmp не завершится. Если

это случится, то результат неопределен.

Эти программы полезны для работы с ошибками и

исключительными ситуациями, обрабатываемыми

подпрограммами низкого уровня.

longjmp не может вернуть 0; если передан val=0,

longjmp вернет 1.

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

значение

Переносимостьlongjmp доступна в системах UNIX и совместима с

ANSI Cи.

Смотри такжеsetjmp, signal

Пример

#include<stdio.h>

#include<setjmp.h>

jmp_buf jumper;

main()

{

int value;

value = setjmp(jumper);

if (value != 0)

{

printf("Longjmp со значением %d\n", value);

exit(value);

}

print("Вызов подпрограммы... \n");

subroutine();

}

subroutine()

{

longjmp(jumper,1);

}

Результат выполнения программы

Вызов подпрограммы...

Longjmp со значением 1

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

Lowvideo

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

НазначениеУстанавливает пониженную яркость текстовых

символов.

Синтаксисvoid lowvideo(void);

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

Замечанияlowvideo вызывает пониженную яркость отображе-

ния символов, сбрасывая для этого в текущем

цвете переднего плана бит интенсивности.

Данная функция не влияет на все символы, отоб-

ражаемые в данный момент времени на экране. Ее

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

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

твенного вывода на консоль (такими, как

cprintf), причем после обращения к lowvidio.

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

значение

Совместимость Данная функция работает только на ЭВМ семейства

IBM PC и совместимых с ними; соответствующая

функция есть в Турбо Паскале.

Смотри также highvidio, normvidio, textattr, textcolor

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

_lrotl

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

НазначениеЦиклически сдвигает влево беззнаковое длинное

целое.

Синтаксис unsigned long _lrotl(unsigned long lvalue,

int count);

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

Замечания_lrotl сдвигает lvalue влево на count бит.

Возвращаемое_lrotl возвращает сдвинутое влево на count бит

значениеlvalue.

Смотри также_rotr

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

_lrotr

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

НазначениеЦиклически сдвигает вправо беззнаковое длинное

целое.

Синтаксис unsigned long _lrotr(unsigned long lvalue,

int count);

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

Замечания_lrotr сдвигает lvalue вправо на count бит.

Возвращаемое_lrotr возвращает сдвинутое вправо на count бит

значениеlvalue.

Смотри также_rotr

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