Drucken von Funktionszeigern mit cout
In C unterstützt cout das Drucken von Funktionszeigern nicht direkt. Die Verwendung einer bestimmten Operatorüberladung ermöglicht jedoch die Konvertierung des Funktionszeigers in einen Void-Zeiger (void*).
Der Operator<< wird wie folgt überladen, um mit Void-Zeigern zu arbeiten:
ostream & operator <<( ostream &, const void * );
Diese Überladung ermöglicht die Ausgabe von Void-Zeigern im Hexadezimalformat. Funktionszeiger können keine Standardbibliotheksüberladung für den Operator<< haben. weil sie in unendlich vielen Typen existieren.
Beim Versuch, einen Funktionszeiger direkt mit cout auszugeben, wird er implizit in einen anderen Typ konvertiert. In vielen Fällen führt diese Konvertierung zu einem booleschen Wert, die genauen Konvertierungsregeln werden jedoch durch die Implementierung definiert.
Um einen Funktionszeiger mit cout auszugeben, können die folgenden Schritte ausgeführt werden:
int (*pf)(); pf = foo;
cout << "cout << (void *)pf is " << (void *)pf << endl;
cout << "cout << (void *)pf is " << (void *)pf << endl;
Das obige ist der detaillierte Inhalt vonWie kann ich Funktionszeiger mit „cout' in C drucken?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!