Qt中的各种“q+基本数据类型“

前言

虽说Qt支持C++的数据类型,但是还是用Qt自己又封装的数据类型比较好。你在支持能有我原生的支持?

正文

先看qint系列

  • 有qint8,quint8,qint16,quint16,qint32,quint32,qint64,quint64

源码如下
Qt中的各种“q+基本数据类型“_第1张图片

解读

1. typedef signed char qint8;
  • 说明: 定义了一个 8 位有符号整数类型 qint8,使用 signed char 实现。
  • 范围: -128 到 127
2. typedef unsigned char quint8;
  • 说明: 定义了一个 8 位无符号整数类型 quint8,使用 unsigned char 实现。
  • 范围: 0 到 255
3. typedef short qint16;
  • 说明: 定义了一个 16 位有符号整数类型 qint16,使用 short 实现。
  • 范围: -32,768 到 32,767
4. typedef unsigned short quint16;
  • 说明: 定义了一个 16 位无符号整数类型 quint16,使用 unsigned short 实现。
  • 范围: 0 到 65,535
5. typedef int qint32;
  • 说明: 定义了一个 32 位有符号整数类型 qint32,使用 int 实现。
  • 范围: -2,147,483,648 到 2,147,483,647
6. typedef unsigned int quint32;
  • 说明: 定义了一个 32 位无符号整数类型 quint32,使用 unsigned int 实现。
  • 范围: 0 到 4,294,967,295
7. 处理 64 位整数类型

#if defined(Q_OS_WIN) && !defined(Q_CC_GNU)
意思是在 Windows 平台上(Q_OS_WIN 被定义),同时编译器不是 GNU 编译器(Q_CC_GNU 未被定义)。

  • Windows 平台:

    • 定义: Q_INT64_C(c)Q_UINT64_C(c) 用于定义 64 位整数常量。
    • 实现: 使用 __int64unsigned __int64 类型。
    • 说明:
      #define Q_INT64_C(c) c ## i64    /* signed 64 bit constant */
      #define Q_UINT64_C(c) c ## ui64   /* unsigned 64 bit constant */
      typedef __int64 qint64;            /* 64 bit signed */
      typedef unsigned __int64 quint64;  /* 64 bit unsigned */
      
  • 其他平台:

    • 定义: Q_INT64_C(c)Q_UINT64_C(c) 用于定义 64 位整数常量。
    • 实现: 使用 long longunsigned long long 类型。
    • 说明:
      #ifdef __cplusplus
      #  define Q_INT64_C(c) static_cast<long long>(c ## LL)     /* signed 64 bit constant */
      #  define Q_UINT64_C(c) static_cast<unsigned long long>(c ## ULL) /* unsigned 64 bit constant */
      #else
      #  define Q_INT64_C(c) ((long long)(c ## LL))               /* signed 64 bit constant */
      #  define Q_UINT64_C(c) ((unsigned long long)(c ## ULL))    /* unsigned 64 bit constant */
      #endif
      typedef long long qint64;           /* 64 bit signed */
      typedef unsigned long long quint64; /* 64 bit unsigned */
      

qlonglong

由下面源码可以看出
Qt中的各种“q+基本数据类型“_第2张图片
qlonglong等同于qint64,qulonglong等同于quint64

qreal

由源码可知qreal等于double
Qt中的各种“q+基本数据类型“_第3张图片

你可能感兴趣的:(qt,开发语言)