无法证明输出的合理性

时间:2014-07-02 05:38:45

标签: c if-statement

请查看以下代码:

#include<stdio.h>
int main()
{
    if(sizeof(int)>-1)
    {
        printf("Condition evaluates to true !");
    }
    else
    {
        printf("Condition evaluates to false !");
    }
    return 0;
}

新手会期望输出为“条件评估为真!”。不幸的是,它不是那个。请问为什么会发生这种情况。

1 个答案:

答案 0 :(得分:0)

您需要将sizeof的返回值转换为int才能使评估有效:

if((int)(sizeof(int)) > -1)

查看sizeof

的返回类型