static struct Fuse_oprations hello_oper = {
.getattr = hello_getattr,
.readdir = hello_readdir,
.open = hello_open,
.read = hello_read,
};
私はこのC構文をよく理解していません。構文の名前がわからないため、検索することさえできません。あれは何でしょう?
これは、構造体の特定のフィールドを初期化子で名前で設定できるC99機能です。この前に、イニシャライザはすべてのフィールドの値のみを順番に含める必要がありました-もちろん、これはまだ機能します。
したがって、次の構造体の場合:
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 };
...最後の2つはC99専用です。
これらはC99の 指定された初期化子 です。
designated initialisation
( 指定された初期化子 を参照)。 「初期化リスト」、各 '.
'は「designator
」であり、この場合、「Fuse_oprations
'で指定されたオブジェクトを初期化する構造体' hello_oper
'識別子。