优化代码多个if else语句

时间:2013-11-21 00:21:47

标签: c

我有一段看起来非常难看的代码。我正在尝试比较十六进制中的单个12位数据,看它是否是0xff8到0xfff中的任何一个。如果代码适合所述范围中的任何数字,则代码返回true。有什么建议?谢谢!

/******************************************************************/
/* summary: Checks if the cluster is the last cluster in a file.  */
/* return: returns 1 if true and 0 if false                       */
/******************************************************************/
int lastCluster(unsigned int cluster){
    /*Compares the values of the cluster. The cluster is the last cluster in a
    file if the cluster has a value of 0xff8-0xfff.*/
    if(cluster == 0xff8){
       return (1);
    }
    else if(cluster == 0xff9){
        return (1);
    }
    else if(cluster == 0xffa){
        return (1);
    }
    else if(cluster == 0xffb){
        return (1);
    }
    else if(cluster == 0xffc){
        return (1);
    }
    else if(cluster == 0xffd){
        return (1);
    }
    else if(cluster == 0xffe){
        return (1);
    }
    else if(cluster == 0xfff){
        return (1);
    }
    else{
       return (0);
    } 
}

1 个答案:

答案 0 :(得分:4)

您可以将这些组合成一个单独的测试

if (cluster>=0xff8 && cluster<=0xfff)
    return 1;
return 0;