【发布时间】:2013-06-25 09:31:11
【问题描述】:
#include <stdio.h>
int main(void)
{
if (sizeof(int) > -1)
printf("True");
else
printf("False");
}
它打印False。为什么 sizeof() 不返回 if 中的值?
【问题讨论】:
-
启用编译器警告。
-
(sizeof(int) > -1)=(4u > -1)=(4u > -1u)=(4u > -1u)或(4u > 4294967295uu)因为-1u == 4294967295u=False=0 -
int main()。不仅仅是main()。