<QtTypes> - Qt Type Declarations
<QtTypes> 头文件包含 Qt 基本类型声明。更多
Header: | #include <QtTypes> |
类型
qint8 | |
qint16 | |
qint32 | |
qint64 | |
(since 6.6) | qint128 |
qintptr | |
qlonglong | |
qptrdiff | |
qreal | |
qsizetype | |
quint8 | |
quint16 | |
quint32 | |
quint64 | |
(since 6.6) | quint128 |
quintptr | |
qulonglong | |
uchar | |
uint | |
ulong | |
ushort |
宏
(since 6.2) | |
(since 6.2) | |
(since 6.2) | |
(since 6.2) | |
(since 6.2) | PRIXQUINTPTR |
(since 6.2) | PRIdQINTPTR |
(since 6.2) | PRIdQPTRDIFF |
(since 6.2) | PRIdQSIZETYPE |
(since 6.2) | PRIiQINTPTR |
(since 6.2) | PRIiQPTRDIFF |
(since 6.2) | PRIiQSIZETYPE |
(since 6.2) | PRIoQUINTPTR |
(since 6.2) | PRIuQUINTPTR |
(since 6.2) | PRIxQUINTPTR |
(since 6.6) | QT_SUPPORTS_INT128 |
(since 6.6) qint128 | Q_INT128_C(literal) |
(since 6.6) | Q_INT128_MAX |
(since 6.6) | Q_INT128_MIN |
qint64 | Q_INT64_C(literal) |
(since 6.6) quint128 | Q_UINT128_C(literal) |
(since 6.6) | Q_UINT128_MAX |
quint64 | Q_UINT64_C(literal) |
详细说明
该头文件声明了多个类型定义,这些类型在 Qt 支持的所有平台上保证了各种基本类型的指定位大小,例如qint8 ,它是一个带符号的字符,在 Qt 支持的所有平台上保证为 8 位。头文件还为long long int
声明了qlonglong 类型定义。
头文件还声明了几个方便类型定义:qreal ,用于double
或float
;uchar ,用于unsigned char
;uint ,用于unsigned int
;ulong ,用于unsigned long
;ushort ,用于unsigned short
。
头文件还提供了一系列宏,使得通过 printf() 或qDebug() 等格式化输出工具打印某些 Qt 类型别名(qsizetype、qintptr 等)成为可能,而不会引发格式化警告,也无需类型转换。
类型文档
qint8
用于signed char
的类型定义。在 Qt 支持的所有平台上,该类型保证为 8 位。
qint16
用于signed short
的类型定义。在 Qt 支持的所有平台上,该类型保证为 16 位。
qint32
用于signed int
的类型定义。该类型保证在 Qt 支持的所有平台上都是 32 位的。
qint64
用于long long int
的类型定义。该类型保证在 Qt 支持的所有平台上都是 64 位的。
可使用Q_INT64_C() 宏创建该类型的字面量:
qint64 value = Q_INT64_C(932838457459459);
另请参阅 Q_INT64_C(),quint64, 和qlonglong 。
[since 6.6]
qint128
类型定义,用于在支持__int128
的平台上(如果是这种情况,Qt XML 定义了QT_SUPPORTS_INT128 这个宏)。
可使用Q_INT128_C() 宏创建该类型的字面量。
该类型定义在 Qt 6.6 中引入。
另请参阅 Q_INT128_C(),Q_INT128_MIN,Q_INT128_MAX,quint128, 和QT_SUPPORTS_INT128 。
qintptr
用有符号整数表示指针的整数类型(用于散列等)。
类型定义为 qint32 或 qint64。在 Qt 支持的所有平台上,该类型保证与指针大小相同。在使用 32 位指针的系统上,qintptr 是 qint32 的类型定义;在使用 64 位指针的系统上,qintptr 是 qint64 的类型定义。
请注意,qintptr 是有符号的。对于无符号值,请使用 quintptr。
为了使用格式化输出工具(如printf()
,qDebug(),QString::asprintf() 等)打印这种类型的值,可以使用PRIdQINTPTR
和PRIiQINTPTR
宏作为格式指定器。它们都会将数值打印为基数为 10 的数字。
qintptr p = 123; printf("The pointer is %" PRIdQINTPTR "\n", p);
另请参阅 qptrdiff,qint32, 和qint64 。
qlonglong
long long int
的类型定义(Windows 上为__int64
)。这与qint64 相同。
另请参见 qulonglong 和qint64 。
qptrdiff
表示指针差异的整数类型。
类型定义为 qint32 或 qint64。在 Qt 支持的所有平台上,该类型保证与指针大小相同。在使用 32 位指针的系统上,quintptr 是 quint32 的类型定义;在使用 64 位指针的系统上,quintptr 是 quint64 的类型定义。
请注意,qptrdiff 是有符号的。对于无符号值,请使用 quintptr。
为了使用格式化输出工具(如printf()
,qDebug(),QString::asprintf() 等)打印这种类型的值,可以使用PRIdQPTRDIFF
和PRIiQPTRDIFF
宏作为格式指定器。它们都会将数值打印为基数为 10 的数字。
qptrdiff d = 123; printf("The difference is %" PRIdQPTRDIFF "\n", d);
另请参阅 quintptr,qint32, 和qint64 。
qreal
用于double
的类型定义,除非 Qt XML 配置了-qreal float
选项。
[alias]
qsizetype
为所有平台提供 Posix'ssize_t
的积分类型。
在 Qt 支持的所有平台上,该类型保证与size_t
大小相同。
请注意,qsizetype 是有符号的。对于无符号值,请使用size_t
。
为了使用格式化输出工具(如printf()
,qDebug(),QString::asprintf() 等)打印这种类型的值,可以使用PRIdQSIZETYPE
和PRIiQSIZETYPE
宏作为格式指定器。它们都将以 10 为基数打印数值。
qsizetype s = 123; printf("The size is %" PRIdQSIZETYPE "\n", s);
另请参见 qptrdiff 。
quint8
用于unsigned char
的类型定义。在 Qt 支持的所有平台上,该类型保证为 8 位。
quint16
用于unsigned short
的类型定义。在 Qt 支持的所有平台上,该类型保证为 16 位。
quint32
用于unsigned int
的类型定义。该类型保证在 Qt 支持的所有平台上都是 32 位的。
quint64
用于unsigned long long int
的类型定义。该类型保证在 Qt 支持的所有平台上都是 64 位的。
可使用Q_UINT64_C() 宏创建该类型的字面量:
quint64 value = Q_UINT64_C(932838457459459);
另请参阅 Q_UINT64_C(),qint64, 和qulonglong 。
[since 6.6]
quint128
类型定义,用于在支持unsigned __int128
的平台上(如果是这种情况,Qt XML 定义了QT_SUPPORTS_INT128 这个宏)。
可使用Q_UINT128_C() 宏创建该类型的字面量。
该类型定义在 Qt 6.6 中引入。
另请参阅 Q_UINT128_C(),Q_UINT128_MAX,qint128, 和QT_SUPPORTS_INT128 。
quintptr
以无符号整数表示指针的整数类型(用于散列等)。
类型定义为 quint32 或 quint64。在 Qt 支持的所有平台上,该类型保证与指针大小相同。在使用 32 位指针的系统上,quintptr 是 quint32 的类型定义;在使用 64 位指针的系统上,quintptr 是 quint64 的类型定义。
请注意,quintptr 是无符号的。对于有符号值,请使用 qptrdiff。
为了使用格式化输出工具(如printf()
,qDebug(),QString::asprintf() 等)打印这种类型的值,可以使用以下宏作为格式指定符:
PRIuQUINTPTR
以 10 为基数打印数值。PRIoQUINTPTR
以 8 为基数打印数值。PRIxQUINTPTR
:使用小写字母a-f
将数值打印为基数 16 的数字。PRIXQUINTPTR
:使用大写字母A-F
将数值打印为基数 16 的数字。
quintptr p = 123u; printf("The pointer value is 0x%" PRIXQUINTPTR "\n", p);
另请参阅 qptrdiff,quint32, 和quint64 。
qulonglong
unsigned long long int
的类型定义(Windows 上为unsigned __int64
)。这与quint64 相同。
uchar
unsigned char
的便捷类型定义。
uint
unsigned int
的便捷类型定义。
ulong
unsigned long
的便捷类型定义。
ushort
unsigned short
的便利类型定义。
宏文档
请参见qintptr 。
此函数在 Qt 6.2 中引入。
参见 quintptr。
此函数在 Qt 6.2 中引入。
请参见 qptrdiff。
此函数在 Qt 6.2 中引入。
请参见 qsizetype。
此函数在 Qt 6.2 中引入。
[since 6.6]
QT_SUPPORTS_INT128
如果平台支持 128 位整数类型,Qt XML 将定义此宏以及qint128 和quint128 类型。
该宏在 Qt 6.6 中引入。
另请参阅 qint128,quint128,Q_INT128_C(),Q_UINT128_C(),Q_INT128_MIN,Q_INT128_MAX, 和Q_UINT128_MAX 。
[since 6.6]
qint128 Q_INT128_C(literal)
以与平台无关的方式封装有符号 128 位整数literal 。
注意: 与Q_INT64_C() 不同,该宏仅适用于 C++,不适用于 C。这是因为编译器不将这些字面量作为内置变量提供,而且 C 不支持用户自定义字面量。
该宏在 Qt 6.6 中引入。
另请参见 qint128,Q_UINT128_C(),Q_INT128_MIN,Q_INT128_MAX,Q_INT64_C() 和QT_SUPPORTS_INT128 。
[since 6.6]
Q_INT128_MAX
该宏扩展为一个编译时常数,代表qint128 中可表示的最大值。
该宏在 C++ 和 C 模式下均可用。
该宏在 Qt 6.6 中引入。
另请参见 Q_INT128_MIN,Q_UINT128_MAX,qint128,Q_INT128_C 和QT_SUPPORTS_INT128 。
[since 6.6]
Q_INT128_MIN
该宏扩展为一个编译时常数,代表qint128 中可表示的最小值。
该宏在 C++ 和 C 模式下均可用。
此宏在 Qt 6.6 中引入。
另请参见 Q_INT128_MAX,qint128,Q_INT128_C, 和QT_SUPPORTS_INT128 。
qint64 Q_INT64_C(literal)
以独立于平台的方式封装有符号 64 位整数literal 。
举例说明:
qint64 value = Q_INT64_C(932838457459459);
另请参见 qint64,Q_UINT64_C() 和Q_INT128_C()。
[since 6.6]
quint128 Q_UINT128_C(literal)
以独立于平台的方式封装无符号 128 位整数literal 。
注意: 与Q_UINT64_C() 不同,该宏仅在 C++ 中可用,在 C 语言中不可用。这是因为编译器不将这些字面量作为内置变量提供,而且 C 语言不支持用户定义的字面量。
该宏在 Qt 6.6 中引入。
另请参阅 quint128,Q_INT128_C(),Q_UINT128_MAX,Q_UINT64_C() 和QT_SUPPORTS_INT128 。
[since 6.6]
Q_UINT128_MAX
该宏扩展为一个编译时常数,代表quint128 中可表示的最大值。
该宏在 C++ 和 C 语言模式下均可用。
quint128 的最小值为 0(零),因此既不需要也不提供Q_UINT128_MIN
。
该宏在 Qt 6.6 中引入。
另请参见 Q_INT128_MAX,quint128,Q_UINT128_C, 和QT_SUPPORTS_INT128 。
quint64 Q_UINT64_C(literal)
以独立于平台的方式封装无符号 64 位整数literal 。
举例说明:
quint64 value = Q_UINT64_C(932838457459459);
另请参阅 quint64 、Q_INT64_C() 和Q_UINT128_C()。
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.