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