在C / C ++中,是否可以在编译时将函数名称放入代码中?

Mik*_*ant 8 c c++ function

我将有数百个这样的功能

void OrganOut() 
{       
    Title("OrganOut");
Run Code Online (Sandbox Code Playgroud)

第一行将功能的标题显示在LCD显示屏上(这是一个嵌入式音乐系统,您可能可以按名称猜测)。由于函数名称在编译时很明显,是否有任何方法可以自动将名称放置在Title中,以避免两次输入名称?

Lun*_*din 15

您正在寻找__func__。

void OrganOut() 
{       
    Title(__func__);
}
Run Code Online (Sandbox Code Playgroud)

此功能分别可从C99和C ++ 11标准获得。

  • 是的,我们C ++专家花了几年时间才意识到这可能是有用的;-) (3认同)
  • 您还可以将__PRETTY_FUNCTION__作为gcc扩展名使用,其中包括更多信息 (2认同)