ВУЗ:
Составители:
Рубрика:
FP_SEG (point) = seg_val;
FP_OFF (point) = off_val;
*point = byte;
return;
}
Программа # 2.5 демонстрирует возможность использования макроса
FP_MAKE для инициализации far указателя.
/* программа # 2.5 */
#define FP_MAKE(seg,off) ((void far *) \
((((unsigned long) (unsigned)(seg)) << 16L) | \
((unsigned long) (unsigned) (off))))
# include < stdio.h>
void main ( void )
{
char far *point;
point = FP_MAKE (0xB800,0x0000);/*инициализируем указатель*/
printf("Значение указателя = %Fp\n",point);
}
3. УКАЗАТЕЛИ В ПРОГРАММАХ НА ЯЗЫКЕ C# ДЛЯ ПЛАТФОРМЫ .NET.
3.2 Небезопасный код
Указатели в языке C# рекомендуется применять только в случае крайней
необходимости. Тем не менее, применение указателей все же необходимо. К
примеру, у Вас имеется функция из математической библиотеки, в которой для
передачи параметров используются указатели. Не переписывать же эту
функцию – это потенциальный источник ошибок! Использование такой
функции предоставляет так называемый небезопасный (unsafe) в C# код.
Небезопасным называется код, выполнение которого среда выполнения
программ ( в .NET - CLR) не контролирует. Он работает напрямую с адресами
областей памяти посредством указателей и этот код должен быть явным
образом помечен ключевым словом unsafe.
3.2 Ключевое слово unsafe
Оператор unsafe имеет следующий синтаксис:
unsafe блок
Все операторы, входящие в блок, выполняются в небезопасном контексте.
Ключевое слово unsafe может использоваться либо как спецификатор, либо
28