Macro CLASS Equivalent en C
En C , contrairement à la macro FUNCTION qui fournit le nom de la fonction actuelle, il n'y a pas de macro intégrée qui fournit directement le nom de la fonction actuelle class.
Solution
Comme mentionné dans la réponse fournie, une fonctionnalité similaire peut être obtenue en utilisant la méthode typeid(*this).name(). Cependant, cette méthode présente des limites lorsqu'elle est utilisée dans des méthodes statiques.
Pour les méthodes statiques et les scénarios généraux, des approches alternatives utilisant des macros sont disponibles. Une approche consiste à utiliser la macro PRETTY_FUNCTION :
Pour le nom de la méthode :
#define __METHOD_NAME__ methodName(__PRETTY_FUNCTION__) inline std::string methodName(const std::string& prettyFunction) { // Extract and return the method name ... }
Pour le nom de la classe :
#define __CLASS_NAME__ className(__PRETTY_FUNCTION__) inline std::string className(const std::string& prettyFunction) { // Extract and return the class name ... }
Notez que cette approche repose sur la Macro PRETTY_FUNCTION, spécifique à certains compilateurs comme gcc.
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!