有条件的打印函数名称.

有条件的打印函数名称.

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__:               文件的编译时间

 

你可能感兴趣的:(qt,编程)