Ich versuche, das Problem klar zu beschreiben, bitte hinterlassen Sie eine Nachricht und ich werde so schnell wie möglich antworten.
Das folgende Erklärungsformular ist verfügbar
typedef struct mr_dup_ops
{
/* 查询镜像状态 */
int32_t (*dup_mirror_state_query)(uint32_t, mr_kern_mirror_state_query_req_t*);
……………………
……………………
} mr_dup_owner_ops_t;
Dann erklären Sie
STATIC mr_dup_owner_ops_t g_local_mr_dup_ops = {
.dup_mirror_state_query = mr_ioctl_kern_mirror_state_query,
………………
………………
};
Angenommen, es gibt einen Zeiger ops von mr_dup_owner_ops_t, können Sie über ops->dup_mirror_state_query.auf die Funktion mr_ioctl_kern_mirror_state_query zugreifen
Ich kann verstehen, dass die Struktur mr_dup_owner_ops_t eine Reihe von Funktionszeigern deklariert, also fügen Sie die STATIC-Struktur name ={.dup_mirror_state_query hinzu.
只是声明变量 g_local_mr_dup_ops 的作用域为静态的而已。STATIC 应该是什么宏,C/C++ 的关键字是小写的。
static 结构体A 变量a = { ..... }
定义一个A类型的变量a,静态属性,并使用{....} 初始化
初始化部分的语法是gcc的扩展,叫做Designated Initializers.