C 中整数的位数取决于编译器和机器。这是什么意思呢? int 中的位数是否会随着不同的 C 编译器和不同的处理器架构而变化?你能解释一下这是什么意思吗?
这篇维基百科文章提供了很好的概述:http://en.wikipedia.org/wiki/Word_(data_type)
整数等类型是用硬件表示的。硬件发生变化,某些类型的尺寸也发生变化。类型中的位数越多,可以存储的数字越大(对于整数)或精度越高(对于浮点类型)。
有一些类型专门指定了位数,例如
int16
。
它的意思正是它所说的以及你用自己的话所说的。
例如,在某些编译器和某些平台上,
int
是 32 位,在其他编译器和平台上,int
是 64 位。
我记得很久以前,当我在 Commodore Amiga 上编程时,有两个不同制造商提供的两种不同的 C 编译器。在一个编译器上,
int
是 16 位,在另一种编译器上,int
是 32 位。
您可以使用
sizeof
来确定 int
在编译器上有多少字节。