Heim >Backend-Entwicklung >C++ >Wie wähle ich zwischen „__func__', „__FUNCTION__' und „__PRETTY_FUNCTION__' für den Zugriff auf Funktionsnamen in C und C?
Funktionsnamen-Makros in C und C
In C und C stehen mehrere Makros zur Verfügung, um auf den Namen der aktuellen Funktion zuzugreifen. Zu diesen Makros gehören __func__, __FUNCTION__ und __PRETTY_FUNCTION__.
func
Definiert in C99 und übernommen in C 11, func ist eine implizit deklarierte Zeichen-Array-Variable, die Folgendes enthält: der Name der einschließenden Funktion. Es handelt sich um eine einfache und leichte Option, die den schlichten Funktionsnamen bereitstellt.
FUNCTION
FUNCTION ist ein Vorstandard Erweiterung, die von bestimmten Compilern unterstützt wird. Sein Verhalten ähnelt func__, ist jedoch nicht Teil der offiziellen Sprachstandards. Aus Portabilitätsgründen ist es vorzuziehen, __func zu verwenden, sofern verfügbar.
PRETTY_FUNCTION
PRETTY_FUNCTION ist ein GCC- spezifische Erweiterung, die den „schönen“ Namen der Funktion einschließlich ihrer Signatur bereitstellt. Im Gegensatz zu seinen Vorgängern ist es in C vor allem nützlich, um den vollständigen Funktionsprototyp mit Argumenttypen zu erhalten.
Dokumentation
func ist im C99 dokumentiert Norm, Abschnitt 6.4.2.2/1. FUNCTION ist nicht offiziell dokumentiert, ist aber normalerweise in der Compiler-spezifischen Dokumentation enthalten. PRETTY_FUNCTION ist auf der GCC-Dokumentationsseite „Funktionsnamen als Zeichenfolgen“ dokumentiert.
Wann jedes Makro verwendet werden soll
Die Wahl des Makros hängt davon ab spezifische Anforderungen:
Das obige ist der detaillierte Inhalt vonWie wähle ich zwischen „__func__', „__FUNCTION__' und „__PRETTY_FUNCTION__' für den Zugriff auf Funktionsnamen in C und C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!