gpt4 book ai didi

c++ - 如何关闭程序中用于打印调试数据的功能

转载 作者:太空宇宙 更新时间:2023-11-04 16:00:32 25 4
gpt4 key购买 nike

所以在我的 C++ 程序中有几个函数可以“转储”数据。这极大地帮助我在开发应用程序时排除故障。数据被转储到大约十几个 ascii 文件中。

现在我希望这些函数不转储任何数据,这样我就可以看到程序运行的速度有多快,并且拥有程序的“最终版本”。

我是否对所有函数都做这样的事情:

#define DO_DEBUG
#ifdef DO_DEBUG
void dump_dataA(...)
{
// lot of code
}
#else
void dump_dataA(...)
{
return;
}
#endif

我沿着这些思路思考,因为我不能返回并删除我将数据转储到 std::out 和 ascii 文件的所有那些行。这似乎不是一个好主意。特别是因为如果我以后必须升级这个程序,所有这些行都会帮助我。那么“关闭”正在转储调试数据的函数的最佳方法是什么?

最佳答案

您的方法是可行的,但参数会被评估,并且实现应该是可见的(在标题中)。您可以按如下方式使用预处理器:

#define DO_DEBUG

#ifdef DO_DEBUG
void dump_dataA_impl(/*args*/); // Implement it in cpp file or in header

# define dump_dataA(...) dump_dataA_impl(__VA_ARGS__)

#else
# define dump_dataA(...) /* Empty */
#endif

关于c++ - 如何关闭程序中用于打印调试数据的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45313340/

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