理解C原型

时间:2013-05-19 23:36:46

标签: c function-prototypes

函数原型是

int alt_irq_register (alt_u32 id, void* context, void (*isr)(void*, alt_u32));

最后一部分是什么意思? *isr在做什么?

2 个答案:

答案 0 :(得分:5)

它是一个指向函数的指针。您必须使用函数作为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 */

我假设这个函数寄存器和中断处理程序,所以在注册过程中,你将向相关中断发生的函数传递给系统。

答案 1 :(得分:2)

它是一个指向函数的指针。该函数有两个参数(void*alt_u32)并且不返回任何内容(void)。其参数名称为isr