int 包含多少字节,long 包含多少字节?
语境:
- C++
- 32位电脑
- 64位电脑有什么区别吗?
请参阅有关它的维基百科文章。
它是特定于平台和编译器的。在 c 或 c++ 中执行 sizeof(int) 和 sizeof(long)。
(我假设你在谈论 C/C++)
它取决于实现,但此规则应始终有效:
sizeof(short) <= sizeof(int) <= sizeof(long)
正如其他人所说,这取决于您使用的编译器(甚至是您选择的编译器选项)。
然而,在实践中,使用许多 32 位机器的编译器,您会发现:-
C标准基本上说long不能比int短,而 int不能比short 短,等等......
对于 64 位 CPU,这些通常不会改变,但您MUST
要注意指针和整数的大小通常不同:
sizeof(int) != sizeof(void*)
这取决于编译器。
在 32 位系统上,int 和 long 都包含 32 位。在 16 位系统上,int 是 16 位,long 是 32。
还有其他组合!
我认为这取决于您使用的硬件。在 32 位平台上,int 和 long 通常都是 4 个字节。在 C 中,您可以使用 sizeof() 运算符来找出答案。
int intBytes;
long longBytes;
intBytes= sizeof(int);
longBytes = sizeof(long);
我不确定 long 是否在 64 位架构上变为 8 个字节,或者它是否保持为 4。
这取决于你的编译器。还有你的语言,就此而言。尝试问一个更具体的问题。
这在很大程度上取决于您使用的语言。
在 C 中,“int”总是处理器的字长。所以 32 位架构上的 32 位或 4 字节。