2

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

语境:

  • C++
  • 32位电脑
  • 64位电脑有什么区别吗?
4

8 回答 8

7

请参阅有关它的维基百科文章

于 2008-10-02T18:49:33.380 回答
7

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

于 2008-10-02T18:50:15.610 回答
5

(我假设你在谈论 C/C++)

它取决于实现,但此规则应始终有效:

sizeof(short) <= sizeof(int) <= sizeof(long)

于 2008-10-02T18:51:03.127 回答
2

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

然而,在实践中,使用许多 32 位机器的编译器,您会发现:-

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

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

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

 sizeof(int) != sizeof(void*)
于 2008-10-02T19:04:55.170 回答
1

这取决于编译器。

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

还有其他组合!

于 2008-10-02T18:49:48.327 回答
1

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

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

我不确定 long 是否在 64 位架构上变为 8 个字节,或者它是否保持为 4。

于 2008-10-02T18:55:15.973 回答
0

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

于 2008-10-02T18:50:14.567 回答
0

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

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

于 2008-10-02T18:51:08.400 回答