【问题标题】:Understanding a C prototype了解 C 原型
【发布时间】:2013-05-19 23:36:45
【问题描述】:

一个函数原型是

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

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

【问题讨论】:

  • 是一个典型的函数指针,大致翻译为void whatever(void*, alt_u32)——中断请求?非常低级,尊重。
  • 试试cdecl
  • @Kerrek:该页面帮助很大;D

标签: c function-prototypes


【解决方案1】:

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

我假设这个函数注册和中断处理程序,所以在注册过程中你传递给系统当相关中断发生时它必须使用的函数。

【讨论】:

    【解决方案2】:

    它是一个指向函数的指针。该函数接受两个参数(void*alt_u32)并且什么都不返回(void)。它的参数名称是isr

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-31
      • 1970-01-01
      • 1970-01-01
      • 2018-09-07
      • 1970-01-01
      • 2014-04-01
      • 2010-10-27
      • 1970-01-01
      相关资源
      最近更新 更多