' int(* enqueue)(struct,struct)'是什么意思?

时间:2017-12-19 12:26:09

标签: c linux kernel

所有。 我正在阅读linux内核的源代码,找到一条我不理解的行:

  

file:/net/sched/sch_generic.c

位置:struct Qdisc的定义:

struct Qdisc
{
    int             (*enqueue)(struct sk_buff *skb, struct Qdisc *dev);
    struct sk_buff *    (*dequeue)(struct Qdisc *dev);
    unsigned        flags;
#define TCQ_F_BUILTIN   1
#define TCQ_F_THROTTLED 2
#define TCQ_F_INGRESS   4
    int         padded;
    struct Qdisc_ops    *ops;
    u32         handle;
    u32         parent;
    atomic_t        refcnt;

...

int (*enqueue)(struct sk_buff *skb, struct Qdisc *dev)

的含义是什么?

(第一行)? enqueue是指针吗?

2 个答案:

答案 0 :(得分:3)

int (*enqueue)(struct sk_buff *skb, struct Qdisc *dev)

enqueue是一个指向函数的指针,该函数返回int并获取指向struct sk_buff的指针和指向struct Qdisc的指针。

答案 1 :(得分:2)

enqueue是指向<{1}}并返回(struct sk_buff *skb, struct Qdisc *dev)的函数指针。