我正在爲我的課程編寫一個程序,它以非常簡單的方式模擬操作系統處理中斷的方式。我該如何指向C中函數的開始?
在C中,我有我與聲明的陣列INTERRUPT_TABLE[]
:
typedef void (*FN_TYPE)();
extern FN_TYPE INTERRUPT_TABLE[];
我想設置它,使得在陣列的點的各位置到在別處包含不同的功能的開始我的程序 - 例如,INTERRUPT_TABLE[0]
應該指向函數handle_trap()
的開頭。
我以爲我可以簡單地說:INTERRUPT_TABLE[0] = handle_trap;
但這不起作用。我收到一個編譯器錯誤,說「kernel.c:134:錯誤:下標值既不是數組也不是指針」。有誰知道我做錯了什麼?
感謝您的幫助。
編輯:想通了!我的INTERRUPT_TABLE在我嘗試呼叫的函數上方,因此它們被自動聲明爲整數
你是什麼意思「這不工作」?究竟是什麼問題?編譯錯誤?鏈接錯誤?運行時錯誤? – 2011-02-28 14:38:37
更具體;有很多方法無法工作。語法錯誤?運行時錯誤? – plinth 2011-02-28 14:38:46
「不工作」的含義? – Erik 2011-02-28 14:39:11