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);
有人可以解释这是什么意思及其作用。
由于
答案 0 :(得分:2)
这是一个函数指针。
int (*select_task_rq)(struct task_struct *p, int task_cpu, int sd_flag, int flags);
表示select_task_rq
是指向函数的指针,该函数返回int
并获取所有这些参数类型。
可以将其设置为任何兼容函数,并将其称为固定函数名称。它有时用于在C中提供原始形式的多态,或者允许基于其他信息在函数之间轻松切换。