当前位置: 首页 > news >正文

【ARM 嵌入式 C 头文件系列 22 -- 头文件 stdint.h 介绍】


请阅读【嵌入式开发学习必备专栏 】


文章目录

    • C 头文件 stdint.h
      • 定长整数类型
      • 最小宽度整数类型
      • 最快最小宽度整数类型
      • 整数指针类型
      • 最大整数类型

C 头文件 stdint.h

在 C 语言中,头文件 <stdint.h> 是 C99 标准的一部分,旨在提供一组明确的整数类型,其大小不受特定系统架构(32位、64位等)影响。这允许程序员编写更可移植的代码,因为他们可以明确指定所需的整数大小和有符号性。
这个头文件定义了以下类型:

定长整数类型

  • int8_t, int16_t, int32_t, int64_t: 分别代表至少8、16、32、64位的有符号整数。
  • uint8_t, uint16_t, uint32_t, uint64_t: 分别代表至少8、16、32、64位的无符号整数。

最小宽度整数类型

  • int_least8_t, int_least16_t, int_least32_t, int_least64_t: 分别代表至少8、16、32、64位的最小有符号整数。
  • uint_least8_t, uint_least16_t, uint_least32_t, uint_least64_t: 分别代表至少8、16、32、64位的最小无符号整数。

最快最小宽度整数类型

  • int_fast8_t, int_fast16_t, int_fast32_t, int_fast64_t: 选择最快的类型,该类型至少能够存储8、16、32、64位的有符号整数。
  • uint_fast8_t, uint_fast16_t, uint_fast32_t, uint_fast64_t: 选择最快的类型,该类型至少能够存储8、16、32、64位的无符号整数。

整数指针类型

  • intptr_t: 一个有符号整数类型,其大小足以存储指针。
  • uintptr_t: 一个无符号整数类型,其大小足以存储指针。

最大整数类型

  • intmax_t: 能够表示任何有符号整数的最大类型。
  • uintmax_t: 能够表示任何无符号整数的最大类型。

此外,<stdint.h> 还定义了一组宏,这些宏用于指定整数类型的常量。例如:

  • INT8_MAX, INT16_MAX, INT32_MAX, INT64_MAX: 分别代表 int8_t, int16_t, int32_t, int64_t 能够存储的最大值。
  • UINT8_MAX, UINT16_MAX, UINT32_MAX, UINT64_MAX: 分别代表 uint8_t, uint16_t, uint32_t, uint64_t 能够存储的最大值。
  • INT8_MIN, INT16_MIN, INT32_MIN, INT64_MIN: 分别代表 int8_t, int16_t, int32_t, int64_t 能够存储的最小值(负值)。
  • INT_LEAST8_MIN, INT_LEAST16_MIN, INT_LEAST32_MIN, INT_LEAST64_MIN: 分别代表 int_least8_t, int_least16_t, int_least32_t, int_least64_t 能夜存储的最小值。
  • INT_LEAST8_MAX, INT_LEAST16_MAX, INT_LEAST32_MAX, INT_LEAST64_MAX: 分别代表 int_least8_t, int_least16_t, int_least32_t, int_least64_t 能够存储的最大值。
  • INT_FAST8_MIN, INT_FAST16_MIN, INT_FAST32_MIN, INT_FAST64_MIN: 以及相应的最大值宏。

使用 <stdint.h> 可以让代码在不同平台间更可靠地保持行为一致,因为可以根据需要选择恰当的整数类型。

http://www.lryc.cn/news/330658.html

相关文章:

  • LabVIEW专栏三、探针和断点
  • Transformer模型-softmax的简明介绍
  • 记录一下做工厂的打印pdf程序
  • Linux网络编程一(协议、TCP协议、UDP、socket编程、TCP服务器端及客户端)
  • Python读取Excel根据每行信息生成一个PDF——并自定义添加文本,可用于制作准考证
  • http: server gave HTTP response to HTTPS client 分析一下这个问题如何解决中文告诉我详细的解决方案
  • Flume学习笔记
  • 数据库系统概论(超详解!!!) 第三节 关系数据库标准语言SQL(Ⅳ)
  • 与谷歌“分家”两年后,SandboxAQ推出统一加密管理平台
  • 【卫星家族】 | 高分六号卫星影像及获取
  • XML与Xpath
  • 【c++20】CPP-20-STL-Cookbook 学习笔记
  • Python 之 Flask 框架学习
  • 精品丨PowerBI负载测试和容量规划
  • 【算法-PID】
  • ros rosbag使用记录
  • WebKit结构揭秘:探秘网页渲染的魔法之源
  • VSCode美化
  • Runes 生态一周要览 ▣ 2024.3.25-3.31|Runes 协议更新 BTC 减半在即
  • 瘦身Spring Boot应用(thinJar)
  • 备战蓝桥杯---贪心刷题1
  • 《数据结构学习笔记---第九篇》---循环队列的实现
  • 前端调试工具之Chrome Elements、Network、Sources、TimeLine调试
  • vue 加 websocket 聊天
  • uniapp通过蓝牙传输数据 (ios)
  • docker搭建CI/CD环境配置过程中的常见问题
  • 实验四 微信小程序智能手机互联网程序设计(微信程序方向)实验报告
  • WPF —— 关键帧动画
  • Taro + vue3 小程序封装标题组件
  • babyAGI(6)-babyCoder源码阅读2任务描述部分