J'essaie de décrire clairement le problème. Si quelque chose n'est pas clair, veuillez laisser un message et je vous répondrai dans les plus brefs délais.
Le formulaire de déclaration suivant est disponible :
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;
Alors déclarez
STATIC mr_dup_owner_ops_t g_local_mr_dup_ops = {
.dup_mirror_state_query = mr_ioctl_kern_mirror_state_query,
………………
………………
};
En supposant qu'il existe un pointeur opérationnel de mr_dup_owner_ops_t, vous pouvez accéder à la fonction mr_ioctl_kern_mirror_state_query via ops->dup_mirror_state_query.
Je peux comprendre que la structure mr_dup_owner_ops_t déclare un ensemble de pointeurs de fonction, alors ajoutez la structure STATIC. Nom de la structure ={.dup_mirror_state_query.
Déclarez simplement la portée de la variable g_local_mr_dup_ops comme étant statique. Quelle macro doit être STATIC ? Les mots-clés C/C++ sont en minuscules.
structure statique A variable a = { ..... }
Définissez une variable a de type A, attribut statique, et initialisez-la en utilisant {....}
La syntaxe de la partie initialisation est une extension de gcc, appelée Designated Initializers.