Maison >développement back-end >C++ >Comment puis-je imprimer des pointeurs de fonction en utilisant « cout » en 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 & operator <<( ostream &, 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 :
int (*pf)(); pf = foo;
cout << "cout << (void *)pf is " << (void *)pf << endl;
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!