查看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中看过这样的符号。 为什么在变量名之前有一个点?
答案 0 :(得分:29)
这是Designated Initializer,它是为C99添加的语法。
答案 1 :(得分:11)
它有时被称为“指定初始化”。这是C99的补充,虽然它已经有一段时间是GNU扩展。
在列表中,每个.
命名要初始化的结构的成员,即所谓的指示符。