Oracle Solaris Studio 12.2:C++ 用户指南

4.10 将预定义 __func__ 符号用于函数名

编译器将每个函数中的标识符 __func__ 隐式声明为静态 const char 数组。如果程序使用标识符,编译器还会提供以下定义,其中,function-name 是函数原始名称。类成员关系、名称空间和重载不反映在名称中。


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

例如,请考虑以下代码段。


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

每次调用函数时,函数将把以下内容输出到标准输出流。


myfunc

还会定义标识符 __FUNCTION__,它等效于 __func__