【发布时间】:2012-10-12 04:10:05
【问题描述】:
在 C(C99 之前)中,布尔值通常表示为
typedef int bool;
#define true 1
#define false 0
为什么它被表示为'int'而不是'float'?
这是一个面试题,我什至想知道为什么会问这样的问题! 有什么令人信服的答案吗?
【问题讨论】:
-
浮点数大于 int ...
-
您为什么希望将其表示为浮点数?浮点运算比较慢,对于只有两个值的类型使用浮点是完全没有意义的。
-
在大多数机器上,
floats 的大小与ints 相同 -
@Taiki:至少在 x86 和 ARM 中,
sizeof(float)=sizeof(int)= 4。 -
现在是“大多数机器”,但公平地说,回到 70 年代或 80 年代,当公约成立时,
sizeof(float) == 4; sizeof(int) == 2;很常见。除了int比float更可取的所有其他原因,这还不错,但它不能解释为什么不使用char。