web-dev-qa-db-ja.com

構造体の変数名の前のドットはどういう意味ですか?

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でそのような表記を見たことがありません。なぜ変数名の前にドットがあるのですか?

47
c0de

これは Designated Initializer で、C99に追加された構文です。

30
Reed Copsey

「指定初期化」と呼ばれることもあります。これはC =の追加ですが、しばらくの間GNU拡張機能です。

リストでは、各.は、初期化する構造体のメンバー、いわゆるデジグネーターを指定します。

11
sidyll