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でそのような表記を見たことがありません。なぜ変数名の前にドットがあるのですか?
これは Designated Initializer で、C99に追加された構文です。
「指定初期化」と呼ばれることもあります。これはC =の追加ですが、しばらくの間GNU拡張機能です。
リストでは、各.
は、初期化する構造体のメンバー、いわゆるデジグネーターを指定します。