gpt4 book ai didi

c - `uint_fast32_t` 是否保证至少与 `int` 一样宽?

转载 作者:太空狗 更新时间:2023-10-29 15:24:14 24 4
gpt4 key购买 nike

C 标准指定小于 int 的整数操作数将在对其执行任何算术运算之前提升为 int。因此,对两个小于 int 的无符号值的运算将使用有符号而不是无符号数学来执行。在确保使用无符号数学对 32 位操作数执行操作很重要的情况下(例如,将乘积可能超过 2⁶³ 的两个数字相乘)将使用类型 uint_fast32_t 由任何标准保证产生没有任何未定义行为的无符号语义?如果不是,是否有任何其他保证至少为 32 位且至少与 int 一样大的无符号类型?

最佳答案

不,不是。在任何情况下,我都建议不要使用 [u]int_fastN_t 类型。在现实世界的系统中,它们被错误定义;例如,uint_fast32_t 通常被定义为 x86_64 上的 64 位类型,尽管 64 位操作最好(加法、减法、逻辑操作)与 32 位操作速度相同,最坏情况下 < strong>慢得多( split 和加载/存储,因为您使用了两倍的缓存行)。

关于c - `uint_fast32_t` 是否保证至少与 `int` 一样宽?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22395590/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com