gpt4 book ai didi

c++ - int 的大小是否取决于编译器和/或处理器?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:59:01 25 4
gpt4 key购买 nike

整数的大小是否取决于编译器、操作系统和处理器?

最佳答案

这个问题的答案取决于我们愿意离实际考虑有多远。

最终,理论上,C 和 C++ 中的一切都取决于编译器,而且只取决于编译器。硬件/操作系统根本不重要。编译器可以自由地实现任何厚度的硬件抽象层并模拟任何东西。没有什么可以阻止 C 或 C++ 实现实现任何大小和任何表示的 int 类型,只要它足够大以满足语言标准中指定的最低要求。这种抽象级别的实际示例很容易获得,例如基于“虚拟机”平台的编程语言,如 Java。

但是,C 和 C++ 旨在成为高度高效 的语言。为了实现最大效率,C 或 C++ 实现必须考虑从底层硬件派生的某些注意事项。出于这个原因,确保每个基本类型都基于硬件直接(或几乎直接)支持的某种表示是很有意义的。从这个意义上说,基本类型的大小确实取决于硬件。

换句话说,针对 64 位硬件/OS 平台的特定 C 或 C++ 实现完全可以自由地将 int 实现为占用 128 位的 71 位 1 的补码有符号整数类型内存,使用其他 57 位作为填充位,这些位总是需要存储编译器作者女友的生日。这个实现甚至会有一定的实用值(value):它可以用来对C/C++程序的可移植性进行运行时测试。但这就是该实现的实际用途将结束的地方。不要指望在“普通”C/C++ 编译器中看到类似的东西。

关于c++ - int 的大小是否取决于编译器和/或处理器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12862732/

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