【ARM 嵌入式 C 头文件系列 22 -- 头文件 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> 可以让代码在不同平台间更可靠地保持行为一致,因为可以根据需要选择恰当的整数类型。

相关推荐
R-G-B2 分钟前
python 验证每次操作图片处理的顺序是否一致,按序号打上标签,图片重命名
开发语言·python·图片重命名·按序号打上标签·验证图片处理的顺序
小二·7 分钟前
Go 语言系统编程与云原生开发实战(第10篇)性能调优实战:Profiling × 内存优化 × 高并发压测(万级 QPS 实录)
开发语言·云原生·golang
多多*10 分钟前
2月3日面试题整理 字节跳动后端开发相关
android·java·开发语言·网络·jvm·adb·c#
v_for_van20 分钟前
力扣刷题记录4(无算法背景,纯C语言)
c语言·算法·leetcode
xyq202427 分钟前
jEasyUI 自定义分页
开发语言
.ZGR.30 分钟前
认识数据结构:图——无人机防空平台的“衍生品”
java·开发语言·数据结构
启友玩AI38 分钟前
方言守护者:基于启英泰伦CI-F162GS02J芯片的“能听懂乡音”的智能夜灯DIY全攻略
c语言·人工智能·嵌入式硬件·ai·语音识别·pcb工艺
波波00740 分钟前
Native AOT 能改变什么?.NET 预编译技术深度剖析
开发语言·.net
wkm95643 分钟前
在arm64 ubuntu系统安装Qt后编译时找不到Qt3DExtras头文件
开发语言·arm开发·qt