Heim >Backend-Entwicklung >C++ >Was ist der Unterschied zwischen „__PRETTY_FUNCTION__', „__FUNCTION__' und „__func__'?
Die Unterschiede verstehen: PRETTY_FUNCTION__, __FUNCTION__ und __func
Beim Programmieren kann der Zugriff auf Informationen über die aktuelle Funktion erfolgen zum Debuggen, Protokollieren und für andere Zwecke nützlich sein. Drei in C und C häufig verwendete Bezeichner dienen dieser Funktion: __PRETTY_FUNCTION__, __FUNCTION__ und __func__. Jeder hat seine eigenen einzigartigen Eigenschaften, die es wert sind, verstanden zu werden.
__func__: Ein Standardbezeichner von C99
func ist in C99 definiert und implizit deklariert Bezeichner, der zu einem Zeichenarray erweitert wird, das den Namen der Funktion enthält, in der er verwendet wird. Als deklarierter Bezeichner verhält sich func anders als ein Präprozessormakro.
__FUNCTION__: Eine Pre-Standard-Erweiterung
Weitgehend unterstützt von C-Compilern wie gcc und Visual C ist FUNCTION nicht unbedingt Teil des C-Standards. Es verhält sich normalerweise ähnlich wie __func__, es können jedoch einige Inkonsistenzen zwischen Compilern bestehen.
__PRETTY_FUNCTION__: Eine GCC-Erweiterung
PRETTY_FUNCTION ist eine GCC-spezifische Erweiterung Erweiterung, die mit __FUNCTION__ vergleichbar ist. Bei C-Funktionen wird jedoch der „hübsche“ Name zurückgegeben, der die Signatur der Funktion enthält.
Auswahl des richtigen Bezeichners
Die Auswahl des zu verwendenden Bezeichners hängt in erster Linie davon ab Support- und Funktionsanforderungen:
Es ist auch wichtig, die spezifische Compiler-Dokumentation zu konsultieren nicht standardmäßige Erweiterungen wie FUNCTION und __PRETTY_FUNCTION__. Visual C bietet beispielsweise ähnliche Erweiterungen wie __FUNCSIG__.
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen „__PRETTY_FUNCTION__', „__FUNCTION__' und „__func__'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!