问题描述
在linux/fs.h
中,我发现了一个奇怪的结构file_operations
:
struct file_operations fops = {
read: device_read,write: device_write,open: device_open,release: device_release
};
我的问题是这种赋予价值的名称是什么?
解决方法
来自 https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html
2.4.2.3初始化结构成员
初始化成员的另一种方法是指定名称 成员进行初始化。这样,您可以初始化任何成员 排序,甚至不进行初始化。有 您可以使用两种方法。第一种方法在C99和 作为GCC中的C89扩展:
struct point first_point = { .y = 10,.x = 5 };
您也可以省略 句点,并使用冒号代替“ =”,尽管这是GNU C 扩展名:
struct point first_point = { y: 10,x: 5 };
所以这等同于
struct file_operations fops = {
.read = device_read,.write = device_write,.open = device_open,.release = device_release
};