Voici un extrait de code.Pointeur vide et conversion dans l'argument de fonction
class NetworkRequestChannel {
public:
...
NetworkRequestChannel(const unsigned short _port_number,
void * (*connection_handler) (int *));
...
private:
...
}
Ma question concerne l'argument void * (*connection_handler) (int *)
. J'ai une vague idée de la façon de le lire, et c'est comme un pointeur vide vers un objet nommé connection_handler
qui est ensuite converti en un pointeur int. Mais je sais que c'est presque certainement faux, et je ne sais pas comment l'interpréter autrement.
C'est un pointeur de fonction, acceptant une fonction qui prend un seul 'int *' comme argument et retourne une valeur 'void *' (une adresse de mémoire générique). Le paramètre lui-même est nommé 'connection_handler'. – mukunda
Notez que 'class NetworkRequestChannel' indique que c'est C++, pas C. La réponse est la même, mais le code montré n'est pas valide C. –
C'est quelque chose d'autre que j'ai été confus au sujet de quelque temps. Je dois admettre que c'est pour une classe, c'est pourquoi j'essayais de ne pas mettre trop de détails et d'obtenir une réponse simple. Cependant, dans toutes les affectations de mes professeurs, ses fichiers sont des fichiers C avec des extensions «.C» et «.H». Cependant, HE utilise des classes même dans ses propres fichiers prédéfinis, et le makefile qui nous est donné utilise 'g ++ -g'. C'est comme un hybride C/C++ qu'il essaie de faire que je n'ai pas vu jusqu'à ce cours. – UnworthyToast