__FUNC__

Aus RAD Studio
Wechseln zu: Navigation, Suche

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