详解C语言中的int8_t、uint8_t、int16_t、uint16_t、int32_t、uint32_t、int64_t、uint64_t

2023年8月8日,周二上午


目录

  • 为什么会产生int8_t、uint8_t等这类数据类型
  • int8_t、uint8_t等这类数据类型有什么用
  • 头文件
  • int8_t、uint8_t等这类数据类型是怎么实现的

为什么会产生int8_t、uint8_t等这类数据类型

根本原因在于,C 语言标准只是规定了各个基本类型的最小字节长度,但并没有指定它们的确切字节长度:

  • char 类型: char 类型的最小大小为 1 字节,用来存储字符的基本类型。

  • short 类型: short 类型的最小大小为 2 字节,用来存储短整数的基本类型。

  • int 类型: int 类型的最小大小为 2 字节,用来存储整数的基本类型。

  • long 类型: long 类型的最小大小为 4 字节,用来存储长整数的基本类型。

  • long long 类型: long long 类型的最小大小为 8 字节,用来存储超长整数的基本类型。

比如,

在64位Windows上运行C语言的sizeof(long)得到的是4

在64位Linux上运行C语言的sizeof(long)得到的是8

虽然不一样,但它们都不会小于4字节

再比如,

在某些平台上运行C语言的sizeof(int)得到的是2

在64位和32位Windows上运行C语言的sizeof(int)得到的是4

虽然不一样,但它们都不会小于2字节

总而言之,C语言现有的基本数据类型,不能满足跨平台的需求。

因为C语言现有的基本数据类型在不同的平台有不同的字节长度,当换一个平台时可能会在数据大小方面出现问题。

int8_t、uint8_t等这类数据类型有什么用

Integer type with a width of exactly 8, 16, 32, or 64 bits.

具有精确位宽的8位、16位、32位或64位整型

也就是说,无论在什么平台,无论用什么编译器,只要是遵守C语言标准的,

int8_t和uint8_t一定是8位的整型,

int16_t和uint16_t一定是16位的整型,

int32_t和uint32_t一定是32位的整型,

int64_t和uint64_t一定是64位的整型

头文件

在C语言中,它们定义在stdint.h

在C++中,它们定义在cstdint

int8_t、uint8_t等这类数据类型是怎么实现的

我研究了几个小时也没能彻底弄懂,感觉没那么简单,还是挺复杂的,

其实也不用研究这些,知道怎么用、为什么要用就可以了,

不建议去研究这个....

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/34847.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SQL | 汇总数据

9-汇总数据 9.1-聚集函数 在实际开发过程中,可能会遇到下面这些情况: 确定大于某个值的有多少行数据,比如游戏排行榜,查询玩家排行多少名。 获取表中某些行的和,比如双十一当天,某个用户总订单价格是多少…

学习篇之React Fiber概念及原理

什么是React Fibber? React Fiber 是 React 框架的一种底层架构,为了改进 React 的渲染引擎,使其更加高效、灵活和可扩展。 传统上,React 使用一种称为堆栈调和递归算法来处理虚拟 DOM 的更新,这种方法在大型应用或者…

最强自动化测试框架Playwright(7)- 使用cookie避免重复登录

playwright在称为浏览器上下文的隔离环境中执行测试。这种隔离模型提高了可重复性,并防止了级联测试失败。测试可以加载现有的经过身份验证的状态。这消除了在每次测试中进行身份验证的需要,并加快了测试执行速度。 每次测试前登录 以下示例登录到 Git…

谈谈什么是云计算?以及它的应用

作者:Insist-- 个人主页:insist--个人主页 作者会持续更新网络知识和python基础知识,期待你的关注 目录 ​编辑 一、什么是云计算 二、云计算的优势与劣势? 1、云计算的优势 ①提高资源利用率 ②提升效率 ③降低成本 2、云…

python编程基础与案例集锦,python编程入门经典

大家好,本文将围绕python编程基础与案例集锦展开说明,python编程入门与案例详解是一个很多人都想弄明白的事情,想搞清楚python入门程序例子需要先了解以下几个事情。 【程序1】 题目:输入一行字符,分别统计出其中英文字…

射频入门知识-混频器-1

5.4混频电路-视频_哔哩哔哩_bilibili ​​​​​​​

【算法题】螺旋矩阵II (求解n阶Z形矩阵)

一、问题的提出 n阶Z形矩阵的特点是按照之(Z)字形的方式排列元素。n阶Z形矩阵是指矩阵的大小为nn,其中n为正整数。 题目描述 一个 n 行 n 列的螺旋(Z形)矩阵如图1所示,观察并找出填数规律。 图1 7行7列和8行8列的螺旋(Z形)矩阵 现在给出矩阵大小 n&…

数据结构入门:栈

目录 前言 1. 栈 1.1栈的概念及结构 1.2 栈的实现 1.2.1 栈的定义 1.2.2 栈的初始化 1.2.3 入栈 1.2.4 出栈 1.2.5 栈的元素个数 1.2.6 栈顶数据 1.2.7 栈的判空 2.栈的应用 2.1 题目一:括号匹配 2.1.1 思路 2.1.2 分析 2.1.3 题解 总结 前言 无论你是计算机科学专…

用chatGPT从左右眼图片生成点云数据

左右眼图片 需求 需要将左右眼图像利用视差生成三维点云数据 先问问chatGPT相关知识 进一步问有没有现成的软件 chatGPT提到了OpenCV,我们让chatGPT用OpenCV写一个程序来做这个事情 当然,代码里面会有一些错误,chatGPT写的代码并不会做模…

【JavaEE进阶】Spring 更简单的读取和存储对象

文章目录 一. 存储Bean对象1. 配置扫描路径2. 添加注解存储 Bean 对象2.1 使用五大类注解存储Bean2.2 为什么要有五大类注解?2.3 有关获取Bean参数的命名规则 3. 使用方法注解储存 Bean 对象3.1 方法注解储存对象的用法3.2 Bean的重命名3.3 同⼀类型多个 Bean 报错 …

Spring Boot单元测试与Mybatis单表增删改查

目录 1. Spring Boot单元测试 1.1 什么是单元测试? 1.2 单元测试有哪些好处? 1.3 Spring Boot 单元测试使用 单元测试的实现步骤 1. 生成单元测试类 2. 添加单元测试代码 简单的断言说明 2. Mybatis 单表增删改查 2.1 单表查询 2.2 参数占位符 ${} 和 #{} ${} 和 …

学点Selenium玩点新鲜~,让分布式测试有更多玩法

前 言 我们都知道 Selenium 是一款在 Web 应用测试领域使用的自动化测试工具,而 Selenium Grid 是 Selenium 中的一大组件,通过它能够实现分布式测试,能够帮助团队简单快速在不同的环境中测试他们的 Web 应用。 分布式执行测试其实并不是一…

小米平板6Max14即将发布:自研G1 电池管理芯片,支持33W反向快充

明天晚上7点(8 月 14 日),雷军将进行年度演讲,重点探讨“成长”主题。与此同时,小米将推出一系列全新产品,其中包括备受瞩目的小米MIX Fold 3折叠屏手机和小米平板6 Max 14。近期,小米官方一直在…

分布式搜索ElasticSearch-ES(一)

一、ElasticSearch介绍 ES是一款非常强大的开源搜索引擎,可以帮我们从海量的数据中快速找到我们需要的内容。 ElasticSearch结合kibana、Logstash、Beats,也就是elastic stack(ELK),被广泛运用在日志数据分析,实时监控等领域。 …

Ajax 笔记(二)—— Ajax 案例

笔记目录 2. Ajax 综合案例2.1 案例一-图书管理2.1.1 渲染列表2.1.2 新增图书2.1.3 删除图书2.1.4 编辑图书 2.2 案例二-背景图的上传和更换2.2.1 上传2.2.2 更换 2.3 案例三-个人信息设置2.3.1 信息渲染2.3.2 头像修改2.2.3 信息修改2.3.4 提示框 Ajax 笔记: Ajax…

React Native 列表组件基础知识

ScrollView 组件 ScrollView组件是一个容器滚动组件,当容器超出指定宽高时就可以进行滚动交互。 ScrollView组件是一次性渲染所有的 React 子组件,这在性能上是比较差的,所以不建议当列表特别长的时候使用此组件。 接下来列举几个常用的一…

HTML(JavaEE初级系列12)

目录 前言: 1.HTML结构 1.1认识HTML标签 1.2HTML文件基本结构 1.3标签层次结构 1.4快速生成代码框架 2.HTML常见标签 2.1注释标签 2.2标题标签:h1-h6 2.3段落标签:p 2.4换行标签: br 2.5格式化标签 2.6图片标签&#…

【详细教程】学会使用Python隧道代理

作为一名专业爬虫程序猿,我深知在进行网络数据采集时,可能会面临网络封锁、隐私泄露等问题。今天,我将与大家分享如何学会使用Python隧道代理,帮助我们自由访问受限网站,同时保护了解探索Python隧道代理! …

3.1 Spring MVC概述

1. MVC概念 MVC是一种编程思想,它将应用分为模型(Model)、视图(View)、控制器(Controller)三个层次,这三部分以最低的耦合进行协同工作,从而提高应用的可扩展性及可维护…

解开谜团:为什么红黑树胜过AVL树?

为什么红黑树胜过AVL树 博主简介一、引言1.1、红黑树和AVL树简介1.2、红黑树在某些方面优于AVL树 二、红黑树和AVL树的基本原理2.1、红黑树的定义和性质2.2、AVL树的定义和性质2.3、对比两种树结构的特点 三、插入和删除操作的复杂性比较3.1、红黑树的插入操作和平衡性维护3.2、…