__FUNC__

De RAD Studio
Aller à : navigation, rechercher

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;
}