我不明白typedef void interrupt_handler();
的含义。有人可以用一些例子解释一下吗?
typedef void interrupt_handler();
答案 0 :(得分:19)
这意味着interrupt_handler
是函数的类型同义词,它返回void
并且不指定其参数(所谓的旧式声明)。请参阅以下示例,其中foo_ptr
用作函数指针(这是不需要括号的特殊情况):
#include <stdio.h>
typedef void interrupt_handler();
void foo()
{
printf("foo\n");
}
int main(void)
{
void (*foo_ptr_ordinary)() = foo;
interrupt_handler *foo_ptr = foo; // no need for parantheses
foo_ptr_ordinary();
foo_ptr();
return 0;
}
答案 1 :(得分:9)
这是typedef
的{{1}}声明,带有特定的签名(在这种情况下是一个带有void
返回且没有参数的函数。)
请参阅function pointer(最佳答案,选项3)