【发布时间】:2012-11-08 10:52:35
【问题描述】:
我只是好奇。比如说我需要在控制台中输出一个数字。
代码是:
#include <QDebug>
#include <QVariant>
#include <QString>
void displayNumber(quint8 number) {
qDebug() << QVariant(number).toString();
qDebug() << QString::number(number);
//or for example
// QLabel label;
// label.setText(QString::number(number));
//or
// label.setText(QVariant(number).toString());
}
哪个性能更好?我认为内存消耗也不同。 QVariant(number).toString() 意味着它将 QVariant 存储在堆栈中。不确定QString::number(),它不应该只调用函数吗(当然,函数有一个QString返回,所以它也被分配在堆栈上并占用该空间和操作来分配和取消分配它)? 不管怎样,sizeof() 给了我 16 个字节的 QVariant 和 4 个字节的 QString。
【问题讨论】: