我已經給出了一些供應商提供的驅動程序代碼,用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'與被調用的函數的內存地址有關,在正常頁面之外。 –