ARM Cortex-M3 uint_fast32_t 与 uint32_t

2024-01-06

我正在为 STM32Fx cortex-M3 系列处理器开发一个程序。在 stdint.h 中定义了以下内容:

typedef unsigned int uint_fast32_t;
typedef uint32_t  uint_least32_t;
typedef unsigned long uint32_t;

据我了解。

[u]int_fast[n]_t will give you the fastest data type of at least n bits.
[u]int_least[n]_t will give you the smallest data type of at least n bits.
[u]int[n]_t will give you the data type of exactly n bits.

据我所知, sizeof(unsigned int)

因此,我希望 uint_fast32_t 是一种大小等于或大于 uint32_t 大小的数据类型。

在 cortex-M3 sizeof(unsigned int) == sizeof(unsigned long) == 4 的情况下。因此,上述定义在大小方面是“正确的”。

但为什么它们的定义方式不与底层数据类型的名称和逻辑大小一致,即

typedef unsigned long uint_fast32_t;
typedef unsigned int  uint_least32_t;
typedef uint_fast32_t uint32_t;

有人可以澄清底层类型的选择吗?

鉴于“long”和“int”大小相同,为什么不对所有三个定义使用相同的数据类型呢?

typedef unsigned int uint_fast32_t;
typedef unsigned int uint_least32_t;
typedef unsigned int uint32_t;

情况是这样,只能保证

sizeof(long) >= sizeof(int)

并且不能保证它实际上已经不再存在。在很多系统上,int 通常和 long 一样大。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ARM Cortex-M3 uint_fast32_t 与 uint32_t 的相关文章

随机推荐

  • SDL 窗口似乎被操作系统错误地标记为“无响应”

    我有一个通过 Derelict 3 访问的 SDL2 窗口 它应该是黑白频闪 不是因为我讨厌癫痫病患者 而且它成功地做到了这一点 然而 在一段时间后 Ubuntu 13 10 将窗口标记为 无响应 将其变灰 并使频闪效果变暗 这非常令人恼火
  • 使用 ui-grid 常量禁用滚动条

    使用最新版本的 ui grid v3 0 0 rc 16 可以单独关闭水平和垂直滚动条 我通过交换得到了这个工作 scope gridOptions enableScrollbars false with scope gridOptions
  • 如何从 Redis 获取值并将其放入 NGiNX 中的变量中?

    这是我的配置 location session set redis key cookie session redis pass 000 00 000 000 6379 echo cookie session echo echo redis
  • string.Format 如何处理空值?

    在下面的代码中 为什么这两个string Format调用的行为方式不一样吗 在第一个中 没有抛出异常 但在第二个中ArgumentNullException被抛出 static void Main string args Exceptio
  • onClick 输入类型=“image”

    我一直在转来转去 试图找到一个明确的答案 基本上 我想将 Google Analytics 事件跟踪添加到表单提交中 我希望为其添加 onClick 但我很难确定是否所有浏览器都支持它 我问设计表单的人 她说他们不使用按钮类型的原因是导致在
  • Backtrader 错误:“DataFrame”对象没有属性“setenvironment”

    我是反向交易者的新手 我有一个大问题 我想开始我的策略 只是一个简单的 GoldenCross 策略 这个 GoldenCross py 脚本如下所示 import math import backtrader as bt class Go
  • dijit 过滤选择最小长度

    我似乎找不到一种方法来要求过滤选择输入具有一定的长度 我尝试过这样的 new dijit form FilteringSelect name bla store jsonRestStore searchAttr name pattern 3
  • 有人在 vuetify 和 Laravel 7 上取得过成功吗? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我一直在尝试在使用 laravel 7 构建的多个项目中安装 vuetify 我成功地让它工作了一次 但每一次连续的尝试都会破坏 vu
  • 使用 msal.js 对 Angular Spa 进行身份验证

    我的角度应用程序有 1000 条独特的路线 用户应该能够从任何这些页面单击登录按钮 已经基于此示例实现了 msal js https github com Gimly simpleAngularAzureB2C blob master sr
  • 如何避免 Google Ads 拖慢我的网站(尤其是移动网站)速度?

    我知道很多网站管理员认为页面速度毫无意义 然而 我相信这个因素是谷歌决定对任何网站进行排名的前三名因素之一 我厌倦了看到谷歌自己的服务如何减慢我的网页速度 我编写干净的代码 当我启动任何网站 应用程序时 它在 GTMetrix 和 Ping
  • 如何在 docker 镜像中包含修改后的配置文件?

    我是 Docker 新手 一位 Devop 同事在 github 存储库中创建了一个 WSO2 docker 镜像 他使用此类图像来创建暂存和生产实例 The docker compose yml is openssl req newkey
  • 使用 Twisted 和 inlineCallbacks 进行测试

    这是我的函数定义 defer inlineCallbacks def get order order id do some db operations defer returnValue order details 我想做的是使用 Twis
  • 当导入 Angular 13 项目时,Angular 13 包/库抛出错误“moment is not a function”

    我正在升级私有角度库 包 my lib 以便我可以迁移所有其他项目 但是当导入到项目中时 其中一项服务使用 moment 并抛出错误 错误类型错误 时刻不是函数 该库在开发模式下工作 构建和发布都正常 即使导入到项目中 所有组件和资源都加载
  • 我需要做什么才能解决“使用移动值”错误?

    我正在尝试计算 Rust 中的第 10 001 个素数 Project Euler 7 作为其中的一部分 我检查整数是否是素数的方法引用了向量 fn main let mut count u32 1 let mut num u64 1 le
  • Git pull - 致命:读取错误:参数无效

    我尝试使用 msysgit 1 8 1 进行拉取 也尝试使用 1 7 10 和 11 结果相同 但总是收到一个我不知道如何调试 解决的错误 E java myproject gt git pull Enter passphrase for
  • url 中的分号作为查询字符串的分隔符

    我一直听说 W3C 建议使用 而不是 作为查询字符串分隔符 我们建议 HTTP 服务器实现者 特别是 CGI 实现者支持使用 代替 来保存作者 以这种方式转义 字符的麻烦 有人可以解释一下为什么 吗 推荐代替 另外 我尝试使用 代替 例子
  • 如何修复 Python 中的双重编码和损坏的字符串?

    我的流程正在处理已被破坏的数据 我可以看出它已经用 UTF 8 进行了双重编码 但这只是故事的一半 双倍的 decoding仅适用于单字节 拉丁语 且完好无损地通过 UTF 8 的代码点 双字节 或更大 的代码点不能使用以下命令进行双重解码
  • 如何在 Mavericks 中打开 NSSheet?

    在 Mavericks 中 打开和关闭 NSSheets 的方法已更改 为了让事情变得更加艰难 发行说明 https developer apple com library mac releasenotes AppKit RN AppKit
  • Howe 捕获 UIView 顶部 UIView

    i have UIView显示图表 现在我需要将其捕获到UIImage我用谷歌搜索并得到了下面的代码 但是如果我在我的代码中使用它 它就不起作用 即使我使用断点编译器也无法达到这个目的 我在我的代码中使用它UIView 我哪里出错了 UII
  • ARM Cortex-M3 uint_fast32_t 与 uint32_t

    我正在为 STM32Fx cortex M3 系列处理器开发一个程序 在 stdint h 中定义了以下内容 typedef unsigned int uint fast32 t typedef uint32 t uint least32