注册 登录
编程论坛 嵌入式开发

字符设备驱动程序设计中的数据结构:struct file用法看的迷糊啊

GaFu 发布于 2008-11-06 13:43, 3593 次点击
c语言学的不精
struct file_operations mem_fops = {
    .owner = THIS_MODULE,
    .llseek = mem_seek,
    .read = mem_read,
    .write = mem_write,
    .ioctl = mem_ioctl,
    .open = mem_open,
    .release = mem_release,
};
主要是前边的小点,在结构体中这么用什么意思啊,前边还有个等号(给结构体赋值?),原定义的file_operations结构体成员变量也不是这样的啊,用的是冒号(:)这在C中不是位定义了吗?
还有后边怎么不是用分号,而是逗号?
6 回复
#2
dingyin442008-11-19 15:36
这个好像是linux内核层独有的
#3
murufy2008-11-19 23:40
平时工作其实跟嵌入式涉及不多,这个还真没见过,期待牛人解答。
#4
GaFu2008-11-26 01:29
这个是GNU的C特有的,没记错的话,2.4跟2.6内核这个函数定义的也不一样
跟标准C有出入,就是另一种不同的表现形式
这块论坛人太少了,我发个贴这么长时间了都还在上边。
#5
魔幻星空2008-12-08 15:26
结构体的赋值。
因为在结构体声明的时候赋值,所以
.owner = THIS_MODULE 代表 mem_fops.owner = THIS_MODULE
和数组一样,值与值之间要用','隔开,不能用';'
#6
魔幻星空2008-12-08 15:27
好长时间没有来论坛了,以前都是在LINUX板块里看这些东西
#7
klapset2014-02-28 17:46
看看GNU C doc
1