3
static struct file_operations memory_fops = {
    open:       memory_open,    /* just a selector for the real open */
};

这是来自 uclinux 中的 mem.c 文件

4

2 回答 2

6

那是 GNU 风格的初始化语法;open成员初始化为memory_open,其余的未初始化。C99 使用不同的语法 ( .open = memory_open)。

于 2011-03-17T01:25:55.060 回答
5

在 C 中,从一开始就允许在大括号括起来的初始化程序中使用可选的尾随逗号。它在那里,以便您可以在初始化程序中使用统一的逗号放置,例如

struct SomeStructType s = {
  value1,
  value2,
  value3,
};

例如,如果出现这种需要,这使得重新排列列表中的初始化程序变得更加容易。是否要使用它是个人喜好的问题。

至于:语法,它是一个 GCC 特定的扩展,正如 @geekosaur 已经解释的那样。相应的功能在 C99 中以不同的语法标准化。

于 2011-03-17T01:42:28.877 回答