__FUNC__

提供: RAD Studio
移動先: 案内検索

定義済みマクロ への移動


説明

__FUNC__ は、現在の関数の名前を表す、定義済みマクロとして実装されています。

__FUNCTION__ is equivalent to __FUNC__.

#include <tchar.h>
#include <stdio.h>

int _tmain(int argc, _TCHAR* argv[]) {
	printf("You are in function %s\n", __FUNC__);
	return 0;
}

また、__FUNC__ マクロは、以下のようにクラスのメソッドで使用することもできます。

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

ただし、このマクロは、グローバル スコープを使って宣言された場合は無効です。 __FUNC__ が関数のスコープ外にある場合、その値は不確定な文字列になります。

そのような誤った使用例を以下に示します。

#include <stdio.h>

char * funcStr = __FUNC__;

int main() {
	printf("You are in function %s\n", funcStr); // Won’t work as expected
	return 0;
}