在阅读源码时尝试了解nf_hookfn函数,但是却发现不一样的原型定义,
第一种
unsigned int nf_hookfn(void *priv,
struct sk_buff *skb,
const struct nf_hook_state *state);
第二种
typedef unsigned int nf_hookfn(const struct nf_hook_ops *ops,
struct sk_buff *skb,
const struct net_device *in,
const struct net_device *out,
#ifndef __GENKSYMS__
const struct nf_hook_state *state
#else
int (*okfn)(struct sk_buff *)
#endif
);
在linux系统中能找到第二种的代码,第一种却找不到,但用第一种写的程序可以运行,请问下为什么第一种和第二种形参都不对应,为什么用第一种写的程序可以运行?这两种定义方式有啥区别?