我意识到 far 是特定于编译器的,但我的期望是 far 说明符的放置对那些真正理解指针的人来说应该是有意义的。
所以,我有两个应用程序共享处理器的整个内存空间。
应用 A 需要调用应用 B 中存在的函数 foo。
我知道函数 foo 的内存位置。
所以这应该工作,在应用程序A:
typedef int (* __far MYFP)(int input);
void somefunc(void)
{
int returnvalue;
MYFP foo;
foo = (MYFP) 0xFFFFFA;
returnvalue = foo(39);
}
- __far 在 typedef 中的正确位置吗?
- 我是否需要将 __far 添加到 (MYFP) 演员表中?
- 一些信息表明对 foo 的调用不需要取消引用,您的经验是什么?
这看起来还有什么不正确的,或者我可以尝试完成这个吗?
有一个更好的方法吗?
编辑:
这是在使用 Code Warrior 的嵌入式设备(飞思卡尔 S12XEQ 设备)上。这是一个具有 24 位内存空间的 16 位设备,所以是的,它是分段/存储的。
-亚当