__FUNC__ の例
定義済みマクロ への移動
__FUNC__ の使用例を以下に示します。
#include <stdio.h>
int main()
{
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;
}