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

devtools/2024/11/19 18:32:40/

前言

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

正文

先看qint系列

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

源码如下
在这里插入图片描述

解读

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

由下面源码可以看出
在这里插入图片描述
qlonglong等同于qint64,qulonglong等同于quint64

qreal

由源码可知qreal等于double
在这里插入图片描述


http://www.ppmy.cn/devtools/104779.html

相关文章

01.项目初始化

截至目前时间 2024.8.28&#xff0c;参考官方文档创建项目&#xff0c;这里只记录当前版本的创建过程&#xff0c;如果版本出入较大&#xff0c;还请参考官方最新文档。 官网地址&#xff1a;https://cn.vuejs.org/guide/quick-start.html 1. 创建项目 npm create vuelatest这…

mysql 修改用户密码

在 MySQL 中修改用户的密码可以通过几种不同的方法来实现。这里提供两种常见的方法&#xff1a; 方法一&#xff1a;使用 SET PASSWORD 语句 这是最直接的方法&#xff0c;需要具有足够的权限&#xff08;如 root 用户&#xff09;来执行此操作&#xff1a; FLUSH PRIVILEGE…

深度学习100问15:什么是交叉熵误差

嘿&#xff0c;交叉熵误差就像是一个“挑剔的裁判”。 一、定义及原理 想象一下&#xff0c;你在玩一个猜概率的游戏。比如说有个神秘盒子&#xff0c;里面可能有个红球或者蓝球&#xff0c;你要猜猜红球 出现的概率是多少。真实的情况呢&#xff0c;就像是有个“标准答案…

uniapp组件中的emit声明触发事件

emit解析 在 uniapp 中&#xff0c;emit 主要用于组件间通信&#xff0c;特别是在子组件需要向父组件或者其他组件发送消息的时候。具体用途包括&#xff1a; 子传父数据&#xff1a;子组件通过 $emit 触发一个事件&#xff0c;并携带参数&#xff0c;父组件监听这个事件并对参…

Redis的内存淘汰策略- allkeys-lru

allkeys-lru 策略简介 在 allkeys-lru 策略下&#xff0c;当 Redis 的内存使用达到设置的上限&#xff08;maxmemory&#xff09;时&#xff0c;它会根据 LRU 算法选择和删除那些最近最少使用的键。LRU 算法会记录每个键的最近访问时间&#xff0c;当内存不足时&#xff0c;Re…

出现 WebServerException: Unable to start embedded Tomcat 解决方法(全)

目录 1. 问题所示2. 原理分析3. 解决方法4. 彩蛋总结4.1 方式一4.2 方式二4.3 方式三4.4 方式四1. 问题所示 原本今天早上可以执行,但是突然下午执行springboot项目的时候出现如下问题 Caused by: org.springframework.boot.web.server.WebServerException: Unable to start…

SpringBoot 消息队列RabbitMQ Work模型 绑定多个消费者 负载均衡 消息处理速度

介绍 RabbitMQ 会将消息轮询地分发给所有绑定的消费者。多个消费者能够并发处理消息&#xff0c;提高了处理效率和系统的鲁棒性。 多个消费者 如果有50条消息将会 a1 a2 a1 a2 的方式进行去轮询消费 RabbitListener(queues "insert.queue") ///insert.queue 为监听…

Vue项目“npm run serve”总卡住的问题 已解决

Vue项目“npm run serve”总卡住的问题 已解决 概述 如果卡住进度在51% 直接看这篇 https://blog.csdn.net/qq_34419312/article/details/141681307?spm1001.2014.3001.5501 在使用Vue.js进行项目开发时&#xff0c;npm run serve命令是我们常用的启动本地开发服务器的方式…