Heim >Backend-Entwicklung >C++ >Was sind die Unterschiede zwischen „__PRETTY_FUNCTION__', „__FUNCTION__' und „__func__'?
Navigieren durch die Unterschiede zwischen PRETTY_FUNCTION__, __FUNCTION__ und __func
Im Bereich der Codierung ist es wichtig zu verstehen die Unterscheidung zwischen drei Bezeichnern: __PRETTY_FUNCTION__, __FUNCTION__ und __func__. Jedes hat seine einzigartigen Eigenschaften und Dokumentationen und beeinflusst unsere Wahl je nach gewünschtem Ergebnis.
Eintauchen in die Funktion
Eingeführt in C99, func bietet eine unkomplizierte Lösung für den Zugriff auf den Namen der aktuellen Funktion innerhalb des Funktionsbereichs. Es wird zu einem Zeichenarray erweitert, das den schlichten Funktionsnamen enthält. Dieser Bezeichner hat auch in C an Bedeutung gewonnen und wurde in C 11 mit einer etwas anderen Definition hinzugefügt: „eine durch die Implementierung definierte Zeichenfolge.“
Exploring FUNCTION
Bestimmte C-Compiler unterstützen FUNCTION als vorstandardmäßige Erweiterung, aber man kann sich ausschließlich darauf verlassen nicht ratsam. Für Compiler ohne func-Unterstützung kann FUNCTION als Ersatz dienen, allerdings mit Einschränkungen im Vergleich zu seinem standardisierten Gegenstück.
Geben Sie PRETTY_FUNCTION
__PRETTY_FUNCTION__, eine gcc-spezifische Erweiterung, die ähnlich wie __FUNCTION__ funktioniert. Im Kontext von C-Funktionen stellt es jedoch eine erweiterte Version des Funktionsnamens dar, komplett mit der Funktionssignatur. Visual C bietet eine vergleichbare Alternative in __FUNCSIG__, mit geringfügigen Unterschieden.Dokumentation und Verfügbarkeit
Für die nicht standardmäßigen Makros ist es ratsam, auf die Dokumentation des jeweiligen Compilers zu verweisen . Visuelle C-Erweiterungen sind in MSDN unter „Vordefinierte Makros“ für den C-Compiler gut dokumentiert, während gcc-Erweiterungen auf der Dokumentationsseite „Funktionsnamen als Zeichenfolgen“ behandelt werden.Auswahl des richtigen Bezeichners
Die Auswahl des geeigneten Bezeichners hängt vom gewünschten Ergebnis und Compiler ab Unterstützung.Das obige ist der detaillierte Inhalt vonWas sind die Unterschiede zwischen „__PRETTY_FUNCTION__', „__FUNCTION__' und „__func__'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!