【问题标题】:Does size of int variable depend on architecture or compiler? [duplicate]int 变量的大小是否取决于架构或编译器? [复制]
【发布时间】:2014-03-26 17:48:49
【问题描述】:

例如,我有一个带有 64 位寄存器的处理器。 可以是 2 种不同的编译器吗:一个 int 大小等于 32 位,另一个 int 大小等于 16 位?

【问题讨论】:

  • 简短回答:是的。另见:stackoverflow.com/questions/11438794/…
  • 编译器决定了 int 的大小。如果您可以在 64 位系统上运行 16 位编译器,那么您的 int 将是 16 位。
  • 这取决于编译器作者认为什么是好的选择。它曾经是自动的,并且与处理器的寄存器大小相匹配。这已经结束了,内存是今天的限制。许多 64 位编译器将使用 32 位 int。
  • @HansPassant:使int 32 位的另一个基本原理是它允许预定义类型覆盖 8、16、32 和 64 位。如果 char 是 8 位,int 是 64 位,那么 short (可能)是 16 位或 32 位,并且不包括其他大小。 (不过,扩展整数类型也是一种选择。)

标签: c


【解决方案1】:

int 变量或任何数据类型变量的大小取决于编译器。编译器供应商的决定可能会受到当前架构的影响。您可以阅读this 讨论以获取更多详细信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-02-06
    • 1970-01-01
    • 1970-01-01
    • 2012-04-19
    • 2022-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多