<QtTypes> - Qt Type Declarations

<QtTypes> 头文件包含了 Qt 基本类型的声明。更多内容...

Header: #include <QtTypes>

类型

宏

(since 6.2) PRIXQUINTPTR
(since 6.2)
(since 6.2) PRIdQINTPTR
(since 6.2)
(since 6.2) PRIdQPTRDIFF
(since 6.2)
(since 6.2) PRIdQSIZETYPE
(since 6.2) PRIiQINTPTR
(since 6.2) PRIiQPTRDIFF
(since 6.2) PRIiQSIZETYPE
(since 6.2)
(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 的 typedef 定义(如果支持,Qt 会定义宏QT_SUPPORTS_INT128 )。

可以使用Q_INT128_C() 宏 创建该类型的字面量。

此 typedef 于 Qt 6.6 中引入。

另请参阅 Q_INT128_C()、Q_INT128_MIN 、Q_INT128_MAX 、quint128 以及QT_SUPPORTS_INT128 。

qintptr

用于将指针表示为有符号整数的集成类型(适用于哈希等场景)。

qint32 或 qint64 的 typedef。 在 Qt 支持的所有平台上,该类型的大小均保证与指针相同。在采用 32 位指针的系统上,qintptr 是 qint32 的 typedef;在采用 64 位指针的系统上,qintptr 是 qint64 的 typedef。

请注意,qintptr 是带符号的。若需表示无符号值,请使用 quintptr。

若要使用格式化输出功能(如printf() 、qDebug()、QString::asprintf() 等)打印此类型的值,可使用PRIdQINTPTR 和PRIiQINTPTR 宏作为格式指定符。它们都会将该值以十进制数的形式打印出来。

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 的 typedef。 在 Qt 支持的所有平台上,该类型的大小均保证与指针大小一致。在采用 32 位指针的系统上,quintptr 是 quint32 的 typedef;在采用 64 位指针的系统上,quintptr 是 quint64 的 typedef。

请注意,qptrdiff 是带符号的。若需表示无符号值,请使用 quintptr。

若要使用格式化输出功能(如printf() 、qDebug()、QString::asprintf() 等)打印该类型的值,可使用PRIdQPTRDIFF 和PRIiQPTRDIFF 宏作为格式指定符。它们都会将值以十进制数的形式打印出来。

qptrdiff d = 123;
printf("The difference is %" PRIdQPTRDIFF "\n", d);

另请参阅 quintptr 、qint32 和qint64 。

qreal

除非 Qt 在配置时启用了-qreal float 选项,否则此处定义double 的typedef。

[alias] qsizetype

一种在所有平台上均提供 Posix 的 `ssize_t ` 的整数类型。

在 Qt 支持的所有平台上,该类型的大小均保证与 `size_t ` 相同。

请注意,qsizetype 是带符号的。若需处理无符号值,请使用size_t 。

若要使用printf() 、qDebug()、QString::asprintf()等格式化输出功能打印该类型的值,可将PRIdQSIZETYPE 和PRIiQSIZETYPE 宏用作格式指定符。它们都会将值以十进制数的形式打印出来。

qsizetype s = 123;
printf("The size is %" PRIdQSIZETYPE "\n", s);

另请参阅 qptrdiff 。

quint8

unsigned char 的 typedef 定义。在 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 的 typedef 定义(若支持,Qt 会定义宏QT_SUPPORTS_INT128 )。

可以使用Q_UINT128_C() 宏创建此类型的字面量。

此 typedef 于 Qt 6.6 中引入。

另请参阅 Q_UINT128_C()、Q_UINT128_MAX 、qint128 以及QT_SUPPORTS_INT128 。

quintptr

用于将指针表示为无符号整数的类型(适用于哈希等场景)。

quint32 或 quint64 的 typedef。 在 Qt 支持的所有平台上,该类型的大小均保证与指针大小一致。在 32 位指针系统上,quintptr 是 quint32 的 typedef;在 64 位指针系统上,quintptr 是 quint64 的 typedef。

请注意,quintptr 是无符号的。若需处理有符号值,请使用 qptrdiff。

若要使用格式化输出功能(如printf() 、qDebug()、QString::asprintf()等)打印该类型的值,可使用以下宏作为格式指定符:

  • PRIuQUINTPTR: 将值以十进制数的形式打印出来。
  • PRIoQUINTPTR: 将该值以十进制数的形式打印出来。
  • PRIxQUINTPTR: 将值以十六进制数的形式输出,使用小写字母a-f 。
  • PRIXQUINTPTR: 将值以十六进制形式输出,使用大写字母A-F 。
quintptr p = 123u;
printf("The pointer value is 0x%" PRIXQUINTPTR "\n", p);

另请参阅 qptrdiff 、quint32 以及quint64 。

qulonglong

unsigned long long int (Windows 系统中为unsigned __int64 )的 typedef 定义。这与quint64 相同。

另请参见 quint64 和qlonglong 。

uchar

unsigned char 的便捷 typedef。

uint

unsigned int 的便捷 typedef。

ulong

unsigned long 的便捷 typedef。

ushort

unsigned short 的便捷 typedef。

宏文档

[since 6.2] PRIdQINTPTR

[since 6.2] PRIiQINTPTR

参见qintptr 。

这些宏是在 Qt 6.2 中引入的。

[since 6.2] PRIdQPTRDIFF

[since 6.2] PRIiQPTRDIFF

参见 qptrdiff。

这些宏是在 Qt 6.2 中引入的。

[since 6.2] PRIdQSIZETYPE

[since 6.2] PRIiQSIZETYPE

参见 qsizetype。

这些宏是在 Qt 6.2 中引入的。

[since 6.2] PRIoQUINTPTR

[since 6.2] PRIuQUINTPTR

[since 6.2] PRIxQUINTPTR

[since 6.2] PRIXQUINTPTR

参见 quintptr。

这些宏是在 Qt 6.2 中引入的。

[since 6.6] QT_SUPPORTS_INT128

如果平台支持 128 位整数类型,Qt 会定义该宏以及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()。

© 2026 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.