【发布时间】:2012-09-10 14:18:59
【问题描述】:
我得到了一些供应商提供的用 C 语言编写的驱动程序代码,该代码在 DOS(是的 DOS)上运行以访问硬件。我正在尝试弄清楚这段代码的作用,到目前为止没有太大的成功。特别是我在理解以下代码时遇到问题
void (interrupt *oldcan)(void);
void interrupt far can_isr(void)
{
/* function body */
}
我猜第一行定义了一个函数指针,但我从未见过interrupt 这个词,我假设它是某种 DOS API 函数。我以前从未使用过 DOS,上面的函数定义在我看来它有 3 种返回类型 - void、interrupt 和 far,这显然是不可能的。该函数实际上有 void 返回类型,但interrupt far 是什么意思?如有任何帮助,我们将不胜感激。
【问题讨论】:
-
如果我没记错的话,
far与被调用函数的内存地址有关,在正常页面之外。
标签: c dos function-pointers