J'ai une question qui est en quelque sorte, je suppose, complètement triviale: qu'est-ce que c'est (et pourquoi)?Déclaration de pointeur obscur
const float *(*const*)(int)
Ma compréhension est qu'il est un « pointeur vers un pointeur constant à une fonction prenant un entier comme argument et renvoyant un pointeur à flotteur constant ».
Est-ce correct?
Comment "analyser mentalement" (*const*)
? Surtout qu'il n'y a pas de nom, au début je ne savais pas par où commencer. Je pense que la seule possibilité pour un "nom" serait de le mettre comme ça: *const *name
car toute autre combinaison est invalide (si je me trompe), alors "nom est un pointeur vers un pointeur constant ...".
Est-ce que ce raisonnement est valide?
Merci!
J'essaie d'éviter les définitions de ce genre en les décomposant en composants en utilisant typedef. –
c giggerish à FR: "http://cdecl.ridiculousfish.com/?q=const+float+*%28*const*+foo%29%28int%29" – Anycorn
Pour toute personne ayant des difficultés à brancher le code ci-dessus dans un compilateur essayez de le mettre en paramètre dans un prototype de fonction '' int foo (const float * (* const *) (int)) 'qui est le même que' int foo (const float * (* const * var_name) (int)) ; ' – nategoose