理解C原型

Nik*_*ntz 2 c function-prototypes

函数原型是

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

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

Fed*_*ico 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));
Run Code Online (Sandbox Code Playgroud)

在您的代码中,您必须alt_irq_register以这种方式使用函数:

/* your code */
ret = alt_irq_register(id, context_ptr, irq_handler);
/* other code */
Run Code Online (Sandbox Code Playgroud)

我假设这个函数寄存器和中断处理程序,所以在注册期间,您将向相关中断发生时必须使用的函数传递给系统.