Maison >développement back-end >C++ >Comment puis-je imprimer des pointeurs de fonction en utilisant « cout » en C ?

Comment puis-je imprimer des pointeurs de fonction en utilisant « cout » en C ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-05 22:31:44229parcourir

How Can I Print Function Pointers Using `cout` in C  ?

Pointeurs de fonction d'impression avec cout

En C, cout ne prend pas directement en charge l'impression des pointeurs de fonction. Cependant, l'utilisation d'une surcharge d'opérateur spécifique permet de le faire en convertissant le pointeur de fonction en un pointeur vide (void*).

L'opérateur<< est surchargé pour fonctionner avec des pointeurs vides comme suit :

ostream &amp; operator <<( ostream &amp;, const void * );

Cette surcharge permet la sortie de pointeurs vides au format hexadécimal. Les pointeurs de fonction ne peuvent pas avoir de surcharge de bibliothèque standard pour l'opérateur<< car ils existent dans un nombre infini de types.

Lorsque vous tentez d'imprimer un pointeur de fonction directement avec cout, il est implicitement converti en un autre type. Dans de nombreux cas, cette conversion aboutit à une valeur booléenne, mais les règles de conversion exactes sont définies par l'implémentation.

Pour imprimer un pointeur de fonction avec cout, les étapes suivantes peuvent être suivies :

  1. Déclarez et initialisez un pointeur de fonction :
int (*pf)();
pf = foo;
  1. Transformez le pointeur de fonction vers un vide pointeur :
cout << "cout << (void *)pf is " << (void *)pf << endl;
  1. Utilisez l'opérateur surchargé<< pour imprimer le pointeur vide :
cout << "cout << (void *)pf is " << (void *)pf << endl;

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn