【问题标题】:What are the lengths of common datatypes?常见数据类型的长度是多少?
【发布时间】:2010-09-14 21:41:32
【问题描述】:

int 包含多少字节,long 包含多少?

上下文:

  • C++
  • 32位电脑
  • 在 64 位计算机上有什么不同吗?

【问题讨论】:

    标签: c++ 64-bit types


    【解决方案1】:

    【讨论】:

    • 虽然理论上这可以回答这个问题,it would be preferable 在这里包含答案的基本部分,并提供链接以供参考。
    【解决方案2】:

    它是特定于平台和编译器的。在 c 或 c++ 中执行 sizeof(int) 和 sizeof(long)。

    【讨论】:

      【解决方案3】:

      (我假设您说的是 C/C++)

      它依赖于实现,但这条规则应该始终有效:

      sizeof(short)

      【讨论】:

        【解决方案4】:

        正如其他人所说,这取决于您使用的编译器(甚至是您选择的编译器选项)。

        但是,实际上,对于许多 32 位机器的编译器,您会发现:-

        • 字符:8 位
        • 短:16 位
        • int:32 位
        • 长:32 位
        • long long:64 位(如果支持)

        C 标准基本上说 long 不能比 int 短,而 int 不能比 short 短,等等……

        对于 64 位 CPU,这些通常不会改变,但您MUST要注意指针和整数的大小通常不同:

         sizeof(int) != sizeof(void*)
        

        【讨论】:

        • 实际上对于 64 位 Unix 确实会发生变化:long 是 64 位的。
        【解决方案5】:

        这取决于编译器。

        在 32 位系统上,int 和 long 都包含 32 位。 在 16 位系统上,int 为 16 位,long 为 32。

        还有其他组合!

        【讨论】:

          【解决方案6】:

          我认为这取决于您使用的硬件。在 32 位平台上,int 和 long 通常都是 4 个字节。在 C 中,您可以使用 sizeof() 运算符来找出答案。

          int intBytes;
          long longBytes;
          intBytes= sizeof(int);
          longBytes = sizeof(long);
          

          我不确定 long 在 64 位架构上是 8 字节还是保持为 4。

          【讨论】:

            【解决方案7】:

            这取决于您的编译器。还有你的语言,就此而言。尝试提出更具体的问题。

            【讨论】:

              【解决方案8】:

              这很大程度上取决于您使用的语言。

              在 C 中,“int”总是处理器的字长。所以 32 位架构上的 32 位或 4 字节。

              【讨论】:

                猜你喜欢
                • 2017-09-20
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2011-11-24
                • 2014-09-06
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多