函数名前的星号是什么意思?

时间:2011-07-14 13:33:12

标签: c operators function-pointers

在以下代码行中,dup_func,free_func和clear_free func前面的星号是做什么的?

void *(*dup_func)(void *);
void (*free_func)(void *);
void (*clear_free_func)(void *);

1 个答案:

答案 0 :(得分:9)

在您的示例中,这意味着它们是function pointers

简而言之,他们允许你做这样的事情:

void example()
{
    printf("Example called!\n");
}

void call_my_function(void (*fun)())
{
    printf("Calling some function\n");
    (*fun)();
}

/* Later. */
call_my_function(example);