Я понимаю, что далеко компилятор специфичен, но я ожидаю, что размещение дальнего спецификатора должно иметь смысл для тех, кто действительно понимает указатели.Использование дальних указателей на функции
Итак, у меня есть два приложения, которые разделяют весь объем памяти процессора.
App А требуется вызвать функцию Foo, которая существует в приложении B.
Я знаю расположение памяти функции Foo.
Так это должно работать, в приложении A:
typedef int (* __far MYFP)(int input);
void somefunc(void)
{
int returnvalue;
MYFP foo;
foo = (MYFP) 0xFFFFFA;
returnvalue = foo(39);
}
- ли __far в нужном месте в ЬурейеЕ?
- Нужно ли добавить __far в (MYFP)?
- Некоторая информация предполагает, что вызов foo не нужно разыменовывать, каков ваш опыт?
Что еще может показаться неправильным, или я могу попытаться это сделать?
Есть ли лучший способ сделать это?
Edit:
Это на встроенном устройстве (Freescale S12XEQ устройства) с использованием кода Warrior. Это 16-битное устройство с 24-битным пространством памяти, так что да, он сегментирован/скомпонован.
-Adam
Можете вдаваться в подробности? На какой платформе вы работаете? Какой компилятор вы используете? – grieve 2008-11-20 17:09:54