嵌入式Linux系统驱动开发中,填充file_operation结构体,比如
static const struct file_operations globalmem_fops = { .owner = THIS_MODULE .llseek = globalmem_llseek .read = globalmem_read .write = globalmem_write .unlocked_ioctl = globalmem_ioctl .open = globalmem_open .release = globalmem_release};
这种对结构体成员初始化/填充的方式可不可以应用到一般的C程序中对结构体初始化?还是有其他要求,如成员是函数?
这种语法对支持C99编译器来说是标准的语法,所有的结构体实例都可以这样进行初始化
比如
struct Atype{
int a1;
int a2;
}
struct Atype Ma={
.a1=5
.a2=10
};
需要注意你的例子里面 static const 是修饰 globalmem_fops 的,就是让globalmem_fops变成静态常量类变量。