首页 > 解决方案 > 第一次评估后始终具有相同值的 if 语句的优化

问题描述

C 中是否有一些宏或优化技巧可以告诉程序:这个 if 语句将是真或假,但在第一次评估后它总是具有相同的值,例如:假设您要制作程序,这将在首先解析一些参数,然后在很长一段时间内,每次迭代你必须以某种方式显示一些信息(由给定的参数选择),所以每次你都会问是否(一些参数已经给出 -> 打印信息这种方式),否则(以另一种方式打印信息),但此条件将始终为真或假,因为解析部分在第一个并且在您输入时无法更改。

标签: ccompilation

解决方案


如果检查条件很昂贵,并且您知道必须循环多少次,则可以执行此操作。

if(Time_expensive_condition_check){
    while(number_of_iterations){
        //your code here
        number_of_iterations = number_of_iterations - 1
    }
}

但是,如果您的条件检查不费时而且只有 O(1),那么就没有更多的优化,因为在每次迭代中,您必须检查是停止还是继续循环。


推荐阅读