码迷,mamicode.com
首页 > 其他好文 > 详细

【QT】 常用字符串类型简介

时间:2021-06-10 18:37:49      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:严格   使用   doc   asc   body   class   http   通过   ati   

常用字符串类型

类型 说明
QChar 1个UTF-16字符。
QString 由QChar组成的字符串。默认使用深拷贝。如果必须使用浅拷贝,可以通过fromRawData进行构建。
QByteArray 传统字符串,以\0结尾。不建议使用。当前只在保存raw数据,或者使用内存非常严格的情况下可以使用。
QLatin1String 纯US-ASCII (ANSI X3.4-1986)和Latin-1 (ISO 8859-1)编码情况下,对char * 进行的轻量级封装。直接对纯latin1数据进行处理。速度比操作unicode编码数据更快。
QStringLiteral 宏!在编译期间,将一个const char * 对象转换成QString对象。节约程序运行时的操作。

QStringLiteral详细

#define QStringLiteral(str)     ([]() noexcept -> QString {         enum { Size = sizeof(QT_UNICODE_LITERAL(str))/2 - 1 };         static const QStaticStringData<Size> qstring_literal = {             Q_STATIC_STRING_DATA_HEADER_INITIALIZER(Size),             QT_UNICODE_LITERAL(str) };         QStringDataPtr holder = { qstring_literal.data_ptr() };         return QString(holder);     }()) 
  1. 这里是一个匿名函数,不抛任何异常。返回值是QString。
  2. 创建一个enum数值 Size,按照按照当前字符串的长度除以2,再刨除后面的\0.
  3. 利用Size创建一个QStaticStringData类型的数据qstring_literal,会返回qstring_literal的data_ptr(),直接转换成QString。
  4. 该字符串将存储在编译的Obect文件的只读段(Read-only segment)中。

参考资料:https://doc.qt.io/qt-5/qstring.html

【QT】 常用字符串类型简介

标签:严格   使用   doc   asc   body   class   http   通过   ati   

原文地址:https://www.cnblogs.com/irisleon/p/14870727.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!