C程序尤其是嵌入式的C程序对效率的追求还是有的,所以就想从小处提高一下.
对if和else if的判断我猜测编译器都是这样执行的:
if(条件1)
......
else if(条件2)
......
对这样的语句,如果条件1满足,那么就不会再去判断条件2的情况了,之后的也不再判断了.那么怎么证明这点呢?看程序
#include #include int main(int argc, char *argv[]) { int i = 1; #if 0 if (i == 1) printf("1111/n"); else if (i++ == 2) printf("2222/n"); else printf("3333/n"); #else if (i == 1) printf("1111/n"); if (i++ == 2) printf("2222/n"); else printf("3333/n"); #endif printf("i is (%d)/n", i); return 0; }
第一种情况的话i的值就是1,第二种的话i的值就是2.
也就是说,如果对单个变量的值进行判断的话,就不要用多个if语句了,使用if else会提高效率的.