【问题标题】:kernel programming & strange struct [duplicate]内核编程和奇怪的结构
【发布时间】:2020-12-10 19:13:07
【问题描述】:

linux/fs.h我发现了奇怪的结构file_operations

struct file_operations fops = {
    read: device_read,
    write: device_write,
    open: device_open,
    release: device_release
};

我的问题是这种给予价值的名称是什么?

【问题讨论】:

标签: c linux struct kernel


【解决方案1】:

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
};

【讨论】:

  • 如果你不说它是什么,那将无助于 OP ... ;-)
  • 我添加了指向gnu.org 的链接来解释这一点
猜你喜欢
  • 2011-04-15
  • 1970-01-01
  • 1970-01-01
  • 2014-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-10
相关资源
最近更新 更多