CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Справочники по функциям / Справочник по библиотечным функциям языка Си
_farptr_tolong - дальний указатель в длинное
Описание
_farptr_norm нормализует дальний указатель таким обра-
зом, что смещение становится менее 16. _farptr_fromlong
преобразует long к нормализованному дальнему указателю.
Параметр задает линейный адрес от 0. _farptr_tolong
преобразует дальний указатель к линейному адресу типа
long, представленному данным указателем.
Использование
#include <dos.h>
void far *_farptr_norm(void far *ptr);
void far *_farptr_fromlong(long value);
long _farptr_tolong(void far *ptr);
Возвращаемое значение
_farptr_norm возвращает нормализованный дальний указа-
тель. _farptr_fromlong возвращает нормализованный даль-
ний указатель. _farptr_tolong возвращает значение типа
long.
Пример
#include <stdio.h>
#include <dos.h>
main()
{
void far * pin, far * pout;
long value;
pin = MK_FP(0x1100, 0x2678);
pout = _farptr_norm(pin);
printf("%lp после нормализации должен стать"
"1367:0008, а фактически=%lp\n",
pin, pout);
value = 0xB7543;
pout = _farptr_fromlong(value);
printf("Преобразование 0x%lX в дальний указатель"
"должно быть B754:0003, \n фактически=%lp\n",
value, pout);
pin = MK_FP(0xbB754, 0x0013>);
value = _farptr_tolong(pin);
printf("Преобразование %lp в long должно быть"
"0xB7553, \n it actually is 0x%lX\n", pin,
value);
}
