gpt4 book ai didi

c++ - 用作流和用作函数的 qDebug() 有什么区别

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:27:31 27 4
gpt4 key购买 nike

我见过一些使用 qDebug 的 Qt 代码,就好像它是 printf()

qDebug( format, ... );

大多数时候我看到它像 std::cout 一样使用

qDebug() << "one " << var_one;

这两种用法有什么区别,什么时候使用另一种是正确的/更好的? Qt 在线帮助似乎以某种方式引用了功能版本,但从未对其进行解释。

最佳答案

qDebug(pattern, object1, object2)它基本上是老式的fprintf(stderr, pattern, object1, object2) ,因此您依赖编译器支持来避免 - 例如 - 使用错误模式使您的程序崩溃,例如 int x; qDebug("%s\n", x); .好吧,GCC 捕获了这个,但我认为编译器不能总是知道模式是否合适。

我总是使用 qDebug() << object << ...; ,如文档所述

If you include QtDebug, a more convenient syntax is also available:

qDebug() << "Brush:" << myQBrush << "Other value:" << i;

With this syntax, the function returns a QDebug object that is configured to use the QtDebugMsg message type. It automatically puts a single space between each item, and outputs a newline at the end. It supports many C++ and Qt types.

您可以将大部分 Qt 对象传递给 qDebug() << ... 并以可读的方式呈现它们

例如尝试qDebug() << QTime::currentTime();

关于c++ - 用作流和用作函数的 qDebug() 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22824060/

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