跳到主要內容
qUtf8Printable/QStringLiteral/QByteArrayLiteral/QLatin1String
- qUtf8Printable - 等於 QString().toUtf8().constData(),可縮短字數
- QStringLiteral - 如果 compiler 支援 c++11,則會預先配好所定義的字串內容 (使用 UTF-16)。如果不支援 c++11,則此 macro 等於 QString::fromUtf8()
- QByteArrayLiteral - 與 QStringLiteral 意義差不多,但是用來產生 QByteArray
- QLatin1String - 比起 char * 直接傳給 QString 造成要由 UTF-8 轉換,QLatin1String 可以少掉 UTF-8 轉換這一部份,但是要轉成 QString 仍然要於 heap 配置記憶體出來
一些原則:
- 函式支援用 QLatin1String 的,則使用 QLatin1String 來定義字串
- 不支援 QLatin1String,僅支援 QString 的,則使用 QStringLiteral 來定義字串。縱使 compiler 不支援 c++11 也只是與由 char * 轉換同樣而已
留言
張貼留言