有条件的打印函数名称.
1. 在qt中,打印函数名称可以用如下宏实现:
#define PRINT_FUNC_NAME \
qDebug()<<" in "<< __FUNCTION__
这个宏,克服了在函数中输入不同的函数名称的烦恼!
是的,我曾经依靠vim强大的编辑功能,去蛮力的在每个函数中来输入函数名称以达到要求,
而现在有了这个宏,优雅多了.
2. 如何有条件的打印, 例如当我定义了_DEBUG_INFO 时打印, 否则就不要打印.
在#define 中嵌入#ifdef 似乎行不通, 但可以变通一下,把#ifdef 放在外边,把#define 放在里边,如下:
#define _DEBUG_INFO
#ifdef _DEBUG_INFO
#define PRINT_FUNC_NAME \
qDebug()<<" in "<< __FUNCTION__
#else
#define PRINT_FUNC_NAME
#endif
根据条件宏来定义打印宏如何定义,问题解决.
补充:
C/C++ 有5个常用的预定义宏,可以当作变量直接使用
__FILE__,__FUNCTION __,__LINE__,__DATE__,__TIME__。
注意是两个下划线。
其含义如下:
__FILE__: 文件的路径和名称
__FUNCTION __: 函数名
__LINE__: 行数
__DATE__: 文件的编译日期
__TIME__: 文件的编译时间