当前位置: 技术问答>linux和unix
看不懂,请教
来源: 互联网 发布时间:2015-05-05
本文导语: 在阅读linux的netfilter方面代码时 下面的的代码看不明白,请教各位: typedef unsigned int nf_hookfn(unsigned int hooknum, struct sk_buff **skb, const struct net_device *in, const struct net_device *out, int (*okfn)(struct sk_buff *)); 如果是仅...
在阅读linux的netfilter方面代码时
下面的的代码看不明白,请教各位:
typedef unsigned int nf_hookfn(unsigned int hooknum,
struct sk_buff **skb,
const struct net_device *in,
const struct net_device *out,
int (*okfn)(struct sk_buff *));
如果是仅仅声明函数nf_hookfn(),为什么在前面还加上typedef,这个到底是什么作用呢?
另外,用Source Insight找遍了linux2.4的代码,只发现这个函数类似上面的声明,但却没有实现,不知道为什么?哪位能指点一二,谢谢!
下面的的代码看不明白,请教各位:
typedef unsigned int nf_hookfn(unsigned int hooknum,
struct sk_buff **skb,
const struct net_device *in,
const struct net_device *out,
int (*okfn)(struct sk_buff *));
如果是仅仅声明函数nf_hookfn(),为什么在前面还加上typedef,这个到底是什么作用呢?
另外,用Source Insight找遍了linux2.4的代码,只发现这个函数类似上面的声明,但却没有实现,不知道为什么?哪位能指点一二,谢谢!
|
说明了一个函数类型nf_hookfn,但用的时候只能是用其指针方式,如:
nf_hookfn *pfn = funcname;
其实定义为函数指针类型就行了,这样定义大概只是为了增强可读性。
nf_hookfn *pfn = funcname;
其实定义为函数指针类型就行了,这样定义大概只是为了增强可读性。
|
声明的是一个新类型nf_hookfn,可以用这个类型定义新的变量,比如
nf_hookfn newFunc;
这个新变量newFunc是一个什么东西呢?把它放在原来typedef声明中取代nf_hookfn的位置,并且去掉typedef,看看产生了一个什么语句?
产生了一个函数声明!
所以newFunc就是这个函数声明所声明的函数名称。
那么nf_hookfn是不是函数?可以肯定地说,不是。它和int、size_t一样,是一种什么什么东东
nf_hookfn newFunc;
这个新变量newFunc是一个什么东西呢?把它放在原来typedef声明中取代nf_hookfn的位置,并且去掉typedef,看看产生了一个什么语句?
产生了一个函数声明!
所以newFunc就是这个函数声明所声明的函数名称。
那么nf_hookfn是不是函数?可以肯定地说,不是。它和int、size_t一样,是一种什么什么东东
|
学习,帮你UP
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。