__FUNC__
Nach oben zu Vordefinierte Makros
Beschreibung
__FUNC__ wird als ein vordefiniertes Makro implementiert, das den Namen der aktuellen Funktion repräsentiert.
__FUNCTION__ entspricht __FUNC__.
Beispiele
#include <tchar.h>
#include <stdio.h>
int _tmain(int argc, _TCHAR* argv[]) {
printf("You are in function %s\n", __FUNC__);
return 0;
}
Das Makro __FUNC__ kann auch in einer Klassenmethode verwendet werden:
#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;
}
Beachten Sie bitte, dass dieses Makro nicht gültig ist, wenn es in einem globalen Bereich deklariert wird. Außerhalb eines Funktionsbereichs hat __FUNC__ einen unbestimmten String-Wert.
Das folgende Beispiel zeigt diese ungültige Verwendung:
#include <stdio.h>
char * funcStr = __FUNC__;
int main() {
printf("You are in function %s\n", funcStr); // Won’t work as expected
return 0;
}