<QtTypes> - Qt 类型声明

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

头文件 #include <QtTypes>

类型

(自 6.2)
(自 6.2)
(自 6.2)
(自 6.2)
(自 6.2) PRIXQUINTPTR
(自 6.2) PRIdQINTPTR
(自 6.2) PRIdQPTRDIFF
(自 6.2) PRIdQSIZETYPE
(自 6.2) PRIiQINTPTR
(自 6.2) PRIiQPTRDIFF
(自 6.2) PRIiQSIZETYPE
(自 6.2) PRIoQUINTPTR
(自 6.2) PRIuQUINTPTR
(自 6.2) PRIxQUINTPTR
(自 6.6) QT_SUPPORTS_INT128
(自 6.6) qint128Q_INT128_C(文本)
(自 6.6) Q_INT128_MAX
(自 6.6) Q_INT128_MIN
qint64Q_INT64_C(文本)
(自 6.6) quint128Q_UINT128_C(文本)
(自 6.6) Q_UINT128_MAX
quint64Q_UINT64_C(文本)

详细描述

头文件声明了几个类型定义,这些类型定义在各种平台上的 Qt 应用的各种基本类型上保证具有特定的位数,例如 qint8,这是一个保证在所有 Qt 支持的平台上为 8 位的有符号 char。该头文件还声明了 qlonglong 类型定义,用于 long long int

还声明了几个便利的类型定义:用于 doublefloatqreal,用于 unsigned charuchar,用于 unsigned intuint,用于 unsigned longulong,以及用于 unsigned shortushort

该头文件还提供了一系列宏,通过格式化输出功能(如 printf() 或 qDebug())打印一些 Qt 类型别名(qsizetype、qintptr 等),而不会引发格式化警告,且不需要类型转换。

类型文档

qint8

signed char 的类型定义。该类型保证在所有 Qt 支持的平台上为 8 位。

qint16

signed short 的类型定义。该类型保证在所有 Qt 支持的平台上为 16 位。

qint32

表示有符号整型的别名。此类在整个支持Qt的平台上是32位的。

qint64

表示长整型的别名。此类在整个支持Qt的平台上是64位的。

可以使用Q_INT64_C() 宏创建此类字面量。

qint64 value = Q_INT64_C(932838457459459);

另请参阅Q_INT64_C(),quint64qlonglong

[since 6.6] qint128

表示支持的平台上的 __int128 的别名(如果支持,Qt 会定义 QT_SUPPORTS_INT128 宏)。

可以使用Q_INT128_C() 宏创建此类字面量。

此别名自 Qt 6.6 版本开始引入。

另请参阅Q_INT128_C(),Q_INT128_MINQ_INT128_MAXquint128QT_SUPPORTS_INT128

qintptr

用于表示指针的有符号整数类型(对于散列等很有用)。

是qint32或qint64的别名。此类保证在其支持的平台上和指针大小相同。在32位指针的系统上,qintptr是qint32的别名;在64位指针的系统上,qintptr是qint64的别名。

请注意,qintptr是有符号的。使用quintptr来表示无符号值。

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

qintptr p = 123;
printf("The pointer is %" PRIdQINTPTR "\n", p);

另请参阅qptrdiffqint32qint64

qlonglong

表示 long long int 的别名(Windows上的 __int64)。它与qint64 相同。

另请参阅qulonglongqint64

qptrdiff

表示指针差的整数类型。

是qint32或qint64的别名。此类保证在其支持的平台上和指针大小相同。在32位指针的系统上,quintptr是quint32的别名;在64位指针的系统上,quintptr是quint64的别名。

请注意,qptrdiff是有符号的。使用quintptr来表示无符号值。

为了使用格式化输出功能(如printf(),qDebug(),QString::asprintf()等)打印此类型的值,可以使用宏 PRIdQPTRDIFF 和 PRIiQPTRDIFF 作为格式说明符。它们都会以十进制数的形式打印值。

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

另请参阅 quintptrqint32qint64

qreal

除非 Qt 配置了 -qreal float 选项,否则这是为 double 定义的类型。

[别名] qsizetype

这是一个提供 Posix 的 ssize_t 的整数类型,适用于所有平台。

此类型保证在 Qt 支持的所有平台上与其支持的大小相同的 size_t。

注意,qsizetype 是有符号的。对于无符号值,请使用 size_t

要使用诸如 printf()qDebug()、QString::asprintf() 等格式化输出功能打印此类型值,您可以使用 PRIdQSIZETYPEPRIiQSIZETYPE 宏作为格式指定符。它们都将值作为十进制数打印。

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_Cqint64qulonglong

[自 6.6 版起] quint128

当平台支持时,此类型为 unsigned __int128(如果 Qt 定义了宏 QT_SUPPORTS_INT128,则为这种情况)。

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

此别名自 Qt 6.6 版本开始引入。

另请参阅 Q_UINT128_CQ_UINT128_MAXqint128QT_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);

另请参阅 qptrdiffquint32quint64

qulonglong

unsigned long long int(Windows 上的 unsigned __int64)提供的别名。这与 quint64 相同。

另请参阅 quint64qlonglong

uchar

针对 unsigned char 的便利别名。

uint

针对 unsigned int 的便利别名。

ulong

针对 unsigned long 的便利别名。

ushort

针对 unsigned short 的便利别名。

宏文档

[自 6.2 以来] PRIdQINTPTR

[自 6.2 以来] PRIiQINTPTR

请参阅 qintptr

此函数是在 Qt 6.2 中引入的。

[自 6.2 以来] PRIXQUINTPTR

[自 6.2 以来] PRIoQUINTPTR

[自 6.2 以来] PRIuQUINTPTR

[自 6.2 以来] PRIxQUINTPTR

请参阅 quintptr。

此函数是在 Qt 6.2 中引入的。

[自 6.2 以来] PRIdQPTRDIFF

[自 6.2 以来] PRIiQPTRDIFF

请参阅 qptrdiff。

此函数是在 Qt 6.2 中引入的。

[自 6.2 以来] PRIdQSIZETYPE

[自 6.2 以来] PRIiQSIZETYPE

请参阅 qsizetype。

此函数是在 Qt 6.2 中引入的。

[自 6.2 以来] PRIXQUINTPTR

此宏是在 Qt 6.2 中引入的。

[自 6.2 以来] PRIdQINTPTR

此宏是在 Qt 6.2 中引入的。

[自 6.2 以来] PRIdQPTRDIFF

此宏是在 Qt 6.2 中引入的。

[自 6.2 以来] PRIdQSIZETYPE

此宏是在 Qt 6.2 中引入的。

[自 6.2 以来] PRIiQINTPTR

此宏是在 Qt 6.2 中引入的。

[自 6.2 以来] PRIiQPTRDIFF

此宏是在 Qt 6.2 中引入的。

[自 6.2 以来] PRIiQSIZETYPE

此宏是在 Qt 6.2 中引入的。

[自 6.2 以来] PRIoQUINTPTR

此宏是在 Qt 6.2 中引入的。

[自 6.2 以来] PRIuQUINTPTR

此宏是在 Qt 6.2 中引入的。

[自 6.2 以来] PRIxQUINTPTR

此宏是在 Qt 6.2 中引入的。

[自 6.6 以来] QT_SUPPORTS_INT128

当平台支持 128 位整数类型时,Qt 定义了此宏以及 qint128quint128 类型。

此宏是在 Qt 6.6 中引入的。

另请参阅 qint128quint128Q_INT128_C()、Q_UINT128_C()、Q_INT128_MINQ_INT128_MAXQ_UINT128_MAX

[自 6.6 以来] qint128 Q_INT128_C(字面量)

以平台无关的方式包装 128 位有符号整数字面量。

注意:Q_INT64_C 不同,此宏仅在 C++ 中可用,不在 C 中可用。这是因为编译器不提供这些字面量作为内置项,且 C 不支持用户定义的字面量。

此宏是在 Qt 6.6 中引入的。

另请参阅 qint128Q_UINT128_C(),Q_INT128_MINQ_INT128_MAXQ_INT64_C() 和 QT_SUPPORTS_INT128

[自 6.6 版起] Q_INT128_MAX

此宏展开为一个表示可以使用 qint128 表示的最大值的编译时常量。

此宏在 C++ 和 C 模式下都可用。

此宏是在 Qt 6.6 中引入的。

另请参阅 Q_INT128_MINQ_UINT128_MAXqint128Q_INT128_CQT_SUPPORTS_INT128

[自 6.6 版起] Q_INT128_MIN

此宏展开为一个表示可以使用 qint128 表示的最小值的编译时常量。

此宏在 C++ 和 C 模式下都可用。

此宏是在 Qt 6.6 中引入的。

另请参阅 Q_INT128_MAXqint128Q_INT128_CQT_SUPPORTS_INT128

qint64 Q_INT64_C(字面量)

以平台无关的方式封装有符号 64 位整数 字面量

示例

qint64 value = Q_INT64_C(932838457459459);

另请参阅 qint64Q_UINT64_C() 和 Q_INT128_C

[自 6.6 版起] quint128 Q_UINT128_C(字面量)

以平台无关的方式封装无符号 128 位整数 字面量

注意:Q_UINT64_C 不同,此宏仅在 C++ 中可用,不在 C 中可用。这是因为编译器不提供这些字面量作为内置项,且 C 不具有对用户定义字面量的支持。

此宏是在 Qt 6.6 中引入的。

另请参阅 quint128Q_INT128_CQ_UINT128_MAXQ_UINT64_CQT_SUPPORTS_INT128

[自 6.6 版起] Q_UINT128_MAX

此宏展开为一个表示可以使用 quint128 表示的最大值的编译时常量。

此宏在 C++ 和 C 模式下都可用。

quint128 的最小值为 0(零),因此不需要也不提供 Q_UINT128_MIN

此宏是在 Qt 6.6 中引入的。

另请参阅 Q_INT128_MAXquint128Q_UINT128_CQT_SUPPORTS_INT128

quint64 Q_UINT64_C(字面量)

以平台无关的方式封装无符号 64 位整数 字面量

示例

quint64 value = Q_UINT64_C(932838457459459);

另请参阅 quint64Q_INT64_CQ_UINT128_C

© 2024 The Qt Company Ltd. 本文件中的文档贡献均为各自拥有者的版权。本文件提供的文档是根据免费软件基金会发布的、自由软件基金会出版的GNU自由文档许可协议版本1.3条款下授权。Qt 及其相应的标志是 The Qt Company Ltd. 在芬兰和其他国家/地区的商标。所有其他商标均为各自拥有者的财产。