如何使用c在8/16/32位机器上查找处理器字大小

时间:2014-03-26 12:03:22

标签: c linux

单词的大小是否真的取决于处理器? 对于8位处理器,它是8位? 对于16位处理器,它是16? 对于32位处理器,它将是32位? 是否有通用规则来定义8/16/32位机器上的字长?

3 个答案:

答案 0 :(得分:0)

这取决于你如何定义'单词'。在流行的定义中,一个字总是16位。但由于您指的是C编程语言,我假设您想知道类型int的宽度。这已被多次询问过,例如:Number of bits in a data type

答案 1 :(得分:0)

  

字的大小是否真的取决于处理器。

是的,如果用"字的大小"你的意思是处理器的通用寄存器的大小。

  

在8/16/32位机器上定义字长是否有通用规则?

不,不在C中。

答案 2 :(得分:0)

对于今天的大多数处理器来说,这是大致正确的,所以一个简单的sizeof(void*)会告诉你每个地址的字节数。

然而,虽然它是现代机器的典型代表,但正如您在this table from Wikipedia中所看到的那样,它并不总是有用的规则。