Quel est le point (.) moyenne dans une struct initialiseur?
static struct fuse_oprations hello_oper = {
.getattr = hello_getattr,
.readdir = hello_readdir,
.open = hello_open,
.read = hello_read,
};
Je ne comprends pas cette syntaxe C bien. Je ne peux même plus de recherche parce que je ne connais pas la syntaxe du nom. Qu'est-ce que?
- Il ressemble à une structure d'initialiseur.
- Normalisé en C99, pour ne fonctionnera que si vous avez un (très) vieux compilateur.
- Enfin trouvé le lien pour cela: stackoverflow.com/questions/330793/...
- Malheureusement, même les versions actuelles de MSVC sont '(vraiment) les anciens compilateurs " par cette norme.
- Absolument bizarre, j'ai cherché sur cette question, tout en passant par un fusible tutoriel, et l'écriture de la même exacte initialiseur.
Vous devez vous connecter pour publier un commentaire.
C'est un C99 fonctionnalité qui vous permet de configurer des champs de la structure par nom dans un initialiseur. Avant cela, l'initialiseur nécessaire pour contenir les valeurs pour tous les champs, dans l'ordre qui fonctionne toujours, bien sûr.
Donc pour la structure suivante:
...vous pouvez utiliser
...ou:
...ou encore:
...même si les deux derniers sont pour C99 seulement.
Ce sont C99 est désigné initialiseurs.
Son connu comme
designated initialisation
(voir Désigné Initialiseurs). "Un initialiseur-liste", Chaque ".
' est un"
designator
" qui, dans ce cas le nom d'un membre particulier de la'
fuse_oprations
' struct pour initialiser l'objet désigné parle "
hello_oper
' identificateur.