C stellt das Makro FUNCTION bereit, um den Namen der aktuell ausgeführten Funktion abzurufen. Ebenso fragen sich Entwickler oft, ob es ein entsprechendes Makro zum Abrufen des Klassennamens gibt, ähnlich wie __CLASS__.
Die Antwort liegt in der Suche nach Alternativen aufgrund des C-Sprachdesigns. Hier sind einige praktikable Optionen:
Benutzerdefiniert Makros: Entwickler können benutzerdefinierte Makros definieren, um die gewünschten Informationen zu extrahieren. Zum Beispiel:
Für Methodennamenextraktion:
#define __METHOD_NAME__ methodName(__PRETTY_FUNCTION__) inline std::string methodName(const std::string& prettyFunction) { // Extract the method name from __PRETTY_FUNCTION__ ... }
Für Klassennamenextraktion:
#define __CLASS_NAME__ className(__PRETTY_FUNCTION__) inline std::string className(const std::string& prettyFunction) { // Extract the class name from __PRETTY_FUNCTION__ ... }
Diese benutzerdefinierten Makros emulieren die Funktionalität von CLASS, erfordern jedoch sorgfältige Überlegungen, um Sonderfälle wie Methoden oder globale Funktionen ohne Klassenkontext zu behandeln.
Das obige ist der detaillierte Inhalt vonGibt es ein __CLASS__-Makro für die Klassennamenextraktion in C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!