Maison > développement back-end > C++ > Comment puis-je obtenir le nom de la classe actuelle en C ?

Comment puis-je obtenir le nom de la classe actuelle en C ?

Linda Hamilton
Libérer: 2024-11-07 21:32:03
original
936 Les gens l'ont consulté

 How Can I Get the Current Class Name in C  ?

Macro équivalent de FUNCTION pour le nom de classe

Les développeurs rencontrent souvent le besoin d'accéder au nom de la fonction actuelle à l'aide du Macro FONCTION en C . Cependant, une macro similaire pour accéder au nom de la classe n'est pas immédiatement apparente.

Solutions alternatives

Bien qu'il n'existe pas d'équivalent exact de FUNCTION pour noms de classe, des approches alternatives peuvent fournir ces informations. L'utilisation de typeid(*this).name() peut être utilisée, mais elle présente une limitation dans les appels de méthodes statiques.

PRETTY_FUNCTION et macros tierces

La macro PRETTY_FUNCTION renvoie à la fois les noms de fonction et de classe. Cependant, son utilisation est spécifique aux compilateurs GCC.

On peut également exploiter des macros tierces, telles que les macros METHOD_NAME et CLASS_NAME, pour extraire la classe et noms de méthodes, comme démontré dans l'exemple de code ci-dessous :

inline std::string methodName(const std::string& prettyFunction) {
    ...
}

#define __METHOD_NAME__ methodName(__PRETTY_FUNCTION__)

...

inline std::string className(const std::string& prettyFunction) {
    ...
}

#define __CLASS_NAME__ className(__PRETTY_FUNCTION__)
Copier après la connexion

Ces macros gèrent les complexités de l'analyse des noms de classe et de méthode de __PRETTY_FUNCTION__, y compris les cas où il n'y a pas de classe.

Conclusion

Bien que C n'ait pas d'équivalent direct à FUNCTION pour les noms de classe, PRETTY_FUNCTION et les macros tierces offrent des alternatives viables pour accéder à la fois à la méthode et les noms de classe, garantissant la maintenabilité et la lisibilité du code dans divers scénarios.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal