函數原型是瞭解一個C原型
int alt_irq_register (alt_u32 id, void* context, void (*isr)(void*, alt_u32));
是什麼半句是什麼意思? *isr
在做什麼?
函數原型是瞭解一個C原型
int alt_irq_register (alt_u32 id, void* context, void (*isr)(void*, alt_u32));
是什麼半句是什麼意思? *isr
在做什麼?
它是一個指向函數的指針。您必須使用函數作爲alt_irq_register
函數的參數。例如:
void irq_handler(void *ptr, alt_u32 val) { /* my function */
/* I'm handling the interupt */
}
int alt_irq_register (alt_u32 id, void* context, void (*isr)(void*, alt_u32));
在代碼中,你必須使用這種方式alt_irq_register
功能:
/* your code */
ret = alt_irq_register(id, context_ptr, irq_handler);
/* other code */
我假定這個功能寄存器和中斷處理程序,所以在註冊時要傳遞到系統當相關的中斷髮生時它必須使用的函數。
這是一個指向函數的指針。該函數有兩個參數(void*
和alt_u32
)並且不返回任何內容(void
)。其參數名稱爲isr
。
這是一個典型的函數指針,大致轉換爲void void(void *,alt_u32) - 中斷請求?非常低級,尊重。 –
嘗試['cdecl'](http://cdecl.ridiculousfish.com/?q=void+%28*isr%29%28void*%2C+alt_u32%29)。 –
@Kerrek:該頁面幫助很多; D –