C 比较If和Else上的两个函数

C 比较If和Else上的两个函数,c,C,当我尝试将我的程序与我的两个同学(其中两个)进行比较时,我遇到了这个问题,结果是结果来得很早(大约2秒)。请注意,我忘记使用clock()函数 在if/else条件下,正在使用三元运算符 (Condition) ? (True) : (False); 比使用这个慢 if (condition) { (function if True) }else { (function if False) } 在速度方面没有区别。仅当您希望键入更少的内容时才使用三元条件。 请参见以下示例

当我尝试将我的程序与我的两个同学(其中两个)进行比较时,我遇到了这个问题,结果是结果来得很早(大约2秒)。请注意,我忘记使用clock()函数

if
/
else
条件下,正在使用三元运算符

(Condition) ? (True) : (False);
比使用这个慢

if (condition) {
    (function if True) 
}else { 
    (function if False)
}

在速度方面没有区别。仅当您希望键入更少的内容时才使用三元条件。
请参见以下示例:

void f1(int i) {
    int val = (i > 10) ? i * 5 : i * 10;
}

void f2(int i) {
    int val;
    if(i > 10){
        val = i * 5;
    }else{
        val = i * 10;
    }
}
有关这两个函数,请参见编译器生成的程序集。
没有区别

这取决于编译器,但如果您看到任何差异,我会感到惊讶。请确保在编译时启用优化。如果启用,则不太可能看到
?:
之间的性能差异。如果启用,则编译这两者,检查汇编程序的差异。对于大多数应用程序来说,差异(如果有的话)可能是“不在乎”。如果表达式
True
function if True
相同,并且相应的
False
表达式也相同,那么这两个表达式之间没有区别。