Ant*_*ton 8 c linux syntax struct kernel
当我最近为我的raid设备开了一个相当老的驱动程序时出现了这个问题.为了能够编译Linux系统的驱动程序,我开始研究我输出的所有错误.我遇到了驱动程序源中使用的这种语法:
struct file_operations t3_fops = {
owner: THIS_MODULE,
ioctl: ft_ioctl,
fasync: ft_fasync,
open: ft_open,
release: ft_release
};
Run Code Online (Sandbox Code Playgroud)
那么伙计们,你能帮我理解":"是什么意思吗?这是C语法吗?我知道有一些字段定义,但这看起来与我不同.
小智 6
这是C99 struct初始化语法.owner
,ioctl
等等,是在结构中的字段的名称,以及THIS_MODULE
,ft_ioctl
等,都值.除了编译时,这实际上是在执行以下操作:
struct file_operations t3_fops;
t3_fops.owner = THIS_MODULE;
t3_fops.ioctl = ft_ioctl;
...
Run Code Online (Sandbox Code Playgroud)
新语法很好,因为它使初始化工作无论结构字段的顺序如何.