利用__func__等宏帮助定位问题
c++编译器和预处理器定义了一些宏可以帮助我们更快的找到程序出错的地方。有如下几个宏:
__FILE__表示当前文件
__func__表示当前函数(c++11)
__LINE__表示当前行数
__DATE__表示编译的日期
__TIME__表示编译的时间
根据以上信息可以很容易找到程序出错的位置。可以把以上信息写在一个宏里,这样就不用在每个可能出错的位置都敲这些宏了。
举个例子:
定义一个宏DEBUG_ERR_POS,宏的作用就是把那些宏整合在一起打印出来,qWarning()是Qt中用于输出警告信息的。
在Widget构造函数中使用DEBUG_ERR_POS,程序运行输出如下信息:
程序正确打印出了DEBUG_ERR_POS所在位置的信息。
注:不要使用函数进行封装以上信息,不然每次打印的都是函数里代码的位置信息,而不是调用它的位置信息。