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

时间:2011-09-20 15:43:06

标签: 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,
};

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

2 个答案:

答案 0 :(得分:29)

这是Designated Initializer,它是为C99添加的语法。

答案 1 :(得分:11)

它有时被称为“指定初始化”。这是C99的补充,虽然它已经有一段时间是GNU扩展。

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