我想在每次调用时输出函数名称,我可以轻松地复制并粘贴函数名称,但是我想知道是否有一个快捷方式可以帮我完成这项工作?
目前我正在做的事情:
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都支持" ",并且应该为您提供所需的信息.
__FUNCTION__
MSVC和GCC都支持" ",并且应该为您提供所需的信息.
我从你的例子中看到你正在使用Qt.在这种情况下,你最好的选择是使用Q_FUNC_INFO
找到的
.这是描述:
扩展为描述宏所在函数的字符串.此字符串看起来更具体如何取决于编译器.对于GNU GCC,它通常是函数签名,而对于其他编译器,它可能是行号和列号.
如果您使用的是gcc,您可以__PRETTY_FUNCTION__
根据自己的喜好找到更多.
如果你检查了boost,那么可以跨平台移植一个宏BOOST_CURRENT_FUNCTION.在C99标准中,有一个__func__
具有所需效果的编译器变量.我相信已被C++ 0x标准所接受.合理数量的编译器已经支持这一点.
__func__
是c99(这反过来意味着它可能不适用于Visual Studio,但它是标准的:o))
__FUNCTION__
几乎在任何地方都可以工作
__PRETTY_FUNCTION__
是gnu特定的,并返回带有(名称空间?),类名,返回类型,函数名,参数列表的全限定名称