当前位置:  开发笔记 > 编程语言 > 正文

如何在调试字符串的函数中获取函数名称?

如何解决《如何在调试字符串的函数中获取函数名称?》经验,为你挑选了5个好方法。

我想在每次调用时输出函数名称,我可以轻松地复制并粘贴函数名称,但是我想知道是否有一个快捷方式可以帮我完成这项工作?

目前我正在做的事情:

SlideInfoHeader* lynxThreeFile::readSlideInfoHeader(QDataStream & in)
{
    qDebug("lynxThreeFile::readSlideInfoHeader");
} 

但我想要的是通用的东西:

SlideInfoHeader* lynxThreeFile::readSlideInfoHeader(QDataStream & in)
{
    qDebug(this.className() + "::" + this.functionName());
}

Torbjörn Gyl.. 27

__FUNCTION__MSVC和GCC都支持" ",并且应该为您提供所需的信息.



1> Torbjörn Gyl..:

__FUNCTION__MSVC和GCC都支持" ",并且应该为您提供所需的信息.



2> Evan Teran..:

我从你的例子中看到你正在使用Qt.在这种情况下,你最好的选择是使用Q_FUNC_INFO找到的.这是描述:

扩展为描述宏所在函数的字符串.此字符串看起来更具体如何取决于编译器.对于GNU GCC,它通常是函数签名,而对于其他编译器,它可能是行号和列号.



3> Mark Kegel..:

如果您使用的是gcc,您可以__PRETTY_FUNCTION__根据自己的喜好找到更多.



4> Matt Price..:

如果你检查了boost,那么可以跨平台移植一个宏BOOST_CURRENT_FUNCTION.在C99标准中,有一个__func__具有所需效果的编译器变量.我相信已被C++ 0x标准所接受.合理数量的编译器已经支持这一点.



5> Ronny Brende..:

__func__ 是c99(这反过来意味着它可能不适用于Visual Studio,但它是标准的:o))

__FUNCTION__ 几乎在任何地方都可以工作

__PRETTY_FUNCTION__ 是gnu特定的,并返回带有(名称空间?),类名,返回类型,函数名,参数列表的全限定名称

推荐阅读
Life一切安好
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有