gpt4 book ai didi

c++ - 在使用分段寻址模式的 16 位系统上, `size_t` 、 `uintptr_t` 、 `intptr_t` 和 `ptrdiff_t` 类型的实际大小是多少?

转载 作者:太空宇宙 更新时间:2023-11-04 03:31:15 26 4
gpt4 key购买 nike

嗯,size_tuintptr_tintptr_tptrdiff_t 类型在 C 编程语言中的定义让我很困惑。

我注意到在使用flat memory mode32位系统上,上述四种类型的实际大小是:

sizeof(size_t) = sizeof(uintptr_t) = sizeof(intptr_t) = sizeof(ptrdiff_t) = 4

而在使用flat memory mode64位系统上,以上四种类型的实际大小为:

sizeof(size_t) = sizeof(uintptr_t) = sizeof(intptr_t) = sizeof(ptrdiff_t) = 8

但是,我仍然很好奇这四种类型在使用分段寻址模式16 位系统上的实际大小。

根据 Windows 3.1x ,Windows 3.1x 是一系列的 16 位操作系统。但是我找不到合适的C语言编译器来测试和验证真正的答案。

最佳答案

real mode , size_tptrdiff_t 是 16 位类型。指针的大小取决于它是否是 near, far, or huge。指针。近指针有 16 位,其他 32 位。 intptr_tuintptr_t 只是在 C99 中定义的很晚。

关于c++ - 在使用分段寻址模式的 16 位系统上, `size_t` 、 `uintptr_t` 、 `intptr_t` 和 `ptrdiff_t` 类型的实际大小是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36385767/

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