struct中变量名之前的点是什么意思?

c0d*_*0de 46 c linux kernel

看着linux内核源代码,我发现了这个:

static struct tty_operations serial_ops = {
  .open = tiny_open,
  .close = tiny_close,
  .write = tiny_write,
  .write_room = tiny_write_room,
  .set_termios = tiny_set_termios,
};
Run Code Online (Sandbox Code Playgroud)

我在C中从未见过这样的符号.为什么在变量名之前有一个点?

Ree*_*sey 31

这是一个指定的初始化程序,它是为C99添加的语法.

  • 仅供参考 - 这是最初的提案:http://www.dmk.com/c/init.html (2认同)

sid*_*yll 11

它有时被称为"指定初始化".这是一个C99添加,虽然它已经有一段时间的GNU扩展.

在列表中,每个都.命名要初始化的结构的成员,即所谓的指示符.