Sun Studio 12 Update 1: C++ ユーザーズガイド

4.10 事前定義済み __func__ シンボルの関数名としての使用

-features=extensions オプションを使用すると、それぞれの関数で __func__ 識別子が const char 型の静的配列として暗黙的に宣言されます。プログラムの中で、この識別子が使用されていると、コンパイラによって次の定義が追加されます。ここで、function-name は関数の単純名です。この名前には、クラスメンバーシップ、名前空間、多重定義の情報は反映されません。


static const char __func__[] = "function-name";

たとえば、次のコードを考えてみましょう。


#include <stdio.h>
void myfunc(void)
{
  printf("%s\n", __func__);
}

この関数が呼び出されるたびに、標準出力ストリームに次の情報が出力されます。


myfunc