打印

请教一个结构体

[复制链接]
2779|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yum2004|  楼主 | 2011-11-15 13:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ev, vi, Oct, IO, TE
本帖最后由 yum2004 于 2011-11-15 13:47 编辑

请教如下结构体什么意思,我怎么看不懂怎么定义的?
typedef struct DEVDRV_t
{      
    int (*InitDrvProc)(int DrvNumber);   
    int (*OpenProc)(int DevId);   
    int (*CloseProc)(int DevId);
    int (*ReadProc)(int DevId, BYTE *pBuff, int Len);
    int (*WriteProc)(int DevId, const BYTE *pBuff, int Len);
    int (*IoctlProc)(int DevId, int IoctlCmd, int IoctlArg);
}DEVDRV;
   每一个结构体元素是什么含义?

相关帖子

沙发
luozhao2011| | 2011-11-15 13:41 | 只看该作者
每个元素都是一个函数,没有什么看不懂的吧

使用特权

评论回复
板凳
yum2004|  楼主 | 2011-11-15 13:46 | 只看该作者
哎,是我孤陋寡闻了,以前从没这么用结构体组织过函数来使用函数。多谢!

使用特权

评论回复
地板
airwill| | 2011-11-24 13:43 | 只看该作者
指针, 是指向函数的指针.
呵呵, 看来 LZ 抽空再去啃啃 C 的书哦.

使用特权

评论回复
5
caoqing1314| | 2011-11-26 14:47 | 只看该作者
本帖最后由 caoqing1314 于 2014-11-1 21:06 编辑

这是一个结构体,结构体的每一个成员都是一个函数,特别注意这不是新定义的函数,而是用指针来访问已存在函数。
如int (*InitDrvProc)(int DrvNumber);   
int 是函数返回值,
InitDrvProc是函数指针,
(*InitDrvProc)是通过函数指针变量来访问形式int(*)(int)的函数,
int DrvNumber 是int型的函数成员。

使用特权

评论回复
6
db10| | 2012-1-17 14:10 | 只看该作者
函数指针都看不懂?怎么混

使用特权

评论回复
7
Trail2009| | 2012-4-7 15:53 | 只看该作者
其实函数指针是个好东西,你留意一下,它很有妙用

使用特权

评论回复
8
na239152605| | 2012-4-13 13:45 | 只看该作者
学习了!!!!!!

使用特权

评论回复
9
rhythm92| | 2013-1-24 00:39 | 只看该作者
多多学习~

使用特权

评论回复
10
qinshihao| | 2013-2-6 10:09 | 只看该作者
五楼讲得很好

使用特权

评论回复
11
yhhsky| | 2013-3-31 10:03 | 只看该作者

使用特权

评论回复
12
wangflw| | 2013-4-2 23:32 | 只看该作者
caoqing1314 发表于 2011-11-26 14:47
这是一个结构体,结构体的每一个成员都是一个函数,特别注意这不是新定义的函数,而是用指针来访问已存在函 ...

InitDrvProc准确来说应该是函数指针的变量名。可以和指向的具体函数名不一致。
也有经常叫它XXcallback,之类的

使用特权

评论回复
13
txianwei| | 2013-5-7 18:03 | 只看该作者
5#正解

使用特权

评论回复
14
飞鹰嵌入式| | 2013-8-20 18:07 | 只看该作者
全是函数的结构体啊

使用特权

评论回复
15
caoqing1314| | 2014-11-1 21:05 | 只看该作者
wangflw 发表于 2013-4-2 23:32
InitDrvProc准确来说应该是函数指针的变量名。可以和指向的具体函数名不一致。
也有经常叫它XXcallback, ...

是的,谢谢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

34

主题

77

帖子

1

粉丝