Ben*_*min 107 c c99 designated-initializer
static struct fuse_oprations hello_oper = {
.getattr = hello_getattr,
.readdir = hello_readdir,
.open = hello_open,
.read = hello_read,
};
Run Code Online (Sandbox Code Playgroud)
我不太了解这个C语法.我甚至无法搜索,因为我不知道语法的名称.那是什么?
Dmi*_*tri 132
这是一个C99功能,允许您在初始化程序中按名称设置结构的特定字段.在此之前,初始化程序需要按顺序包含所有字段的值 - 当然,这仍然有效.
所以对于以下结构:
struct demo_s {
int first;
int second;
int third;
};
Run Code Online (Sandbox Code Playgroud)
...您可以使用
struct demo_s demo = { 1, 2, 3 };
Run Code Online (Sandbox Code Playgroud)
...要么:
struct demo_s demo = { .first = 1, .second = 2, .third = 3 };
Run Code Online (Sandbox Code Playgroud)
...甚至:
struct demo_s demo = { .first = 1, .third = 3, .second = 2 };
Run Code Online (Sandbox Code Playgroud)
......虽然最后两个仅适用于C99.