我已经给出了一些供应商提供的驱动程序代码,用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'与被调用的函数的内存地址有关,在正常页面之外。 –