ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris Studio 12.3: C++ ユーザーズガイド Oracle Solaris Studio 12.3 Information Library (日本語) |
コンパイラでは、それぞれの関数で __func__ 識別子が const char 型の静的配列として暗黙的に宣言されます。プログラムの中で、この識別子が使用されていると、コンパイラによって次の定義が追加されます。ここで、function-name は関数の単純名です。この名前には、クラスメンバーシップ、名前空間、多重定義の情報は反映されません。
static const char __func__[] = "function-name";
たとえば、次のコードを考えてみましょう。
#include <stdio.h> void myfunc(void) { printf("%s\n", __func__); }
この関数が呼び出されるたびに、標準出力ストリームに次の情報が出力されます。
myfunc
識別子 __FUNCTION__ も定義され、__func__ と同等になります。