gpt4 book ai didi

c - 无符号整数类型总是大小不同吗?

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

是否有可能(符合 C 规范)有 2 个不同范围但具有相同大小(由于填充)的无符号整数类型?

#include <inttypes.h>
#include <stdio.h>
#include <stdint.h>

int main(void) {
printf("Size:%zu Max:%llu\n",
sizeof(unsigned_32_t), (unsigned long long) ((unsigned_32_t) -1));
// Size:4 Max:4294967295

printf("Size:%zu Max:%llu\n",
sizeof(unsigned_24_t), (unsigned long long) ((unsigned_24_t) -1));
// Size:4 Max:16777215

return 0;

不使用不能有填充的精确宽度整数类型

当然这并不常见 - 只是想知道规范允许什么。

最佳答案

一般来说,是的,这是绝对可能的。

对于 uintN_t 的具体情况<stdint.h> 中定义的类型,如您所述(C11 §7.20.1.1):

The typedef name uintN_t designates an unsigned integer type with width N and no padding bits. Thus, uint24_t denotes such an unsigned integer type with a width of exactly 24 bits.

关于c - 无符号整数类型总是大小不同吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30223632/

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