gpt4 book ai didi

c - C 中的整数是假定由硬件规范处理还是由软件处理?

转载 作者:太空宇宙 更新时间:2023-11-04 00:33:44 24 4
gpt4 key购买 nike

C 中的整数是假定由硬件规范处理还是由软件处理?

对于整数,我指的是原始的“int”

基本的想法是,如果 C 中的整数不依赖于硬件,那么让 gcc 实现不同的整数处理程序将违反标准。这样您就可以拥有传统的 32 位 int 处理程序,然后您还可以拥有 256 位整数或什至动态大小的 int 的处理程序。

我确实知道 long 和 long long,但我不确定它们是否独立于所提供的硬件,我只想指定构建工具链时要使用的“int”处理程序的大小/类型.

我也明白这样做的危险(因为用 32 位整数编译器构建 256 位整数会很糟糕!),但是对于那些需要类似 gmp 库的代码,我认为它会生成代码可读性要好得多。兼容性将是相同的,但依赖性将取决于编译器而不是代码本身。

疯狂的想法,我知道......但回到最初的问题:

C 中的整数是假定由硬件规范处理还是由软件处理?

最佳答案

标准说

A "plain" int object has the natural size suggested by the architecture of the execution environment (large enough to contain any value in the range INT_MIN to INT_MAX as defined in the header <limits.h>).

以及<limits.h>的描述约束 INT_MIN最多为 -32767 和 INT_MAX至少为 32767。因此,如果您的硬件有一个 12 位的字,则必须使用两个字来表示 int。 .

关于c - C 中的整数是假定由硬件规范处理还是由软件处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1184523/

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