gpt4 book ai didi

c++ - Qt 创建者 : how to display function name as a string in qDebug

转载 作者:行者123 更新时间:2023-11-30 01:55:08 24 4
gpt4 key购买 nike

在头文件中:

#define PRINTTCNAME(tcName)\
qDebug() << Q_FUNC_INFO; // error
#define RUNTC( tc)\
PRINTTCNAME(tc);\
res = tc();\
if(res == false){ \
TC_clean(); \
}

在 main.cpp 中:

int TC1_Send();
int TC2_Receive();

int main(int argc, char *argv[]){
RUNTC(TC1_Send);
RUNTC(TC2_Receive);
}

问题:如果我使用上面的代码,它会打印出 int main(int, char**) 的函数名,这不是我想要的。我想打印测试用例的名称,例如TC1_Send,TC2_Receive..

我该如何进行?

最佳答案

我认为你的主要困惑是你认为这应该是你正在做的事情。

事实并非如此。当宏的内容被放置在“调用”发生的位置时,宏将通过预处理器步骤。

在预处理器执行后的上下文中,围绕代码的这个函数将成为主要函数,因此这是预期的行为。

在这种特殊情况下,只需使用以下内容:

#define PRINTTCNAME(tcName)\
qDebug() << #tcName"()"; // no error

输出将是:

TC1_Send()
TC2_Receive()

关于c++ - Qt 创建者 : how to display function name as a string in qDebug,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20968970/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com