C宣言:独特的构造

时间:2014-01-30 22:18:51

标签: c++ c kernel declaration definition

Linux内核在 sched_class 结构定义中有以下定义。

#ifdef CONFIG_SMP
  int  (*select_task_rq)(struct task_struct *p, int task_cpu, int sd_flag, int flags);
  .......
  .......

现在这条线是什么意思,我对C& C有很好的了解。 C ++。但我很难理解这个宣言构造:

 int  (*select_task_rq)(struct task_struct *p, int task_cpu, int sd_flag, int flags);

有人可以解释这是什么意思及其作用。

由于

1 个答案:

答案 0 :(得分:2)

这是一个函数指针。

int (*select_task_rq)(struct task_struct *p, int task_cpu, int sd_flag, int flags);

表示select_task_rq是指向函数的指针,该函数返回int并获取所有这些参数类型。

可以将其设置为任何兼容函数,并将其称为固定函数名称。它有时用于在C中提供原始形式的多态,或者允许基于其他信息在函数之间轻松切换。