dot(。)在结构初始值设定项中是什么意思?
static struct fuse_oprations hello_oper = { .getattr = hello_getattr, .readdir = hello_readdir, .open = hello_open, .read = hello_read, };
我不明白这个C语法。 我甚至无法search,因为我不知道语法的名字。 那是什么?
这是一个C99function,允许您在初始化程序中通过名称来设置结构的特定字段。 在此之前,初始化程序只需包含所有字段的值,当然这仍然有效。
所以对于下面的结构:
struct demo_s { int first; int second; int third; };
…您可以使用
struct demo_s demo = { 1, 2, 3 };
…要么:
struct demo_s demo = { .first = 1, .second = 2, .third = 3 };
…甚至:
struct demo_s demo = { .first = 1, .third = 3, .second = 2 };
…虽然最后两个只适用于C99。
这些是C99的指定初始值设定项 。
它被称为designated initialisation
(请参阅指定的初始化程序 )。 一个“初始化列表”,“每个” .
'是一个“ designator
”,在这种情况下,它designator
' fuse_oprations
'结构的特定成员来初始化由' hello_oper
'标识符指定的对象。