__FUNC__
Remonter à Macros prédéfinies
Description
__FUNC__ est implémentée comme une macro prédéfinie représentant le nom de la fonction en cours.
__FUNCTION__ est équivalente à __FUNC__.
Exemples
#include <tchar.h>
#include <stdio.h>
int _tmain(int argc, _TCHAR* argv[]) {
printf("You are in function %s\n", __FUNC__);
return 0;
}
La macro __FUNC__ est aussi valide lorsqu'elle est utilisée dans une méthode de classe :
#include <iostream>
class TSomeClass {
public:
void SomeMethod(void) {
std::cout << "You are in the class member " << __FUNC__ << std::endl;
}
};
int main() {
TSomeClass SomeClass;
SomeClass.SomeMethod();
return 0;
}
Toutefois, cette macro n'est pas valide lorsqu'elle est déclarée à l'aide d'une portée globale. __FUNC__ aura une valeur chaîne indéterminée en dehors de la portée d'une fonction.
Voici un exemple d'un tel usage incorrect :
#include <stdio.h>
char * funcStr = __FUNC__;
int main() {
printf("You are in function %s\n", funcStr); // Won’t work as expected
return 0;
}