哪个代码效率更高,额外的If语句还是重复的函数

Which code is more efficient, extra If statement or repeated function

关于用 C 编写代码会更快,用 If 检查语句,或者我只是 运行 函数,例如说输出已经是 1。

if(a==b && output!=1)
{
    output=1;
}

if(a==b)
{
    output=1;
}

在第一个代码中,每次代码 运行s 时都必须额外检查 运行。

在第二个你不必要地重复 运行 代码

哪个效率更高??

不管任何可能的优化,如评论中所示,由于额外的检查,第一个代码的效率低于第二个代码。

注意您的数据含义,该检查可能是强制性的。
如果不是,您应该按照建议优化您的代码。


编辑

我假设您的问题理论性大于实际性。在任何实际场景中,当我们要优化某些代码时,数据上下文都会发挥巨大作用。
代码本身不需要很快,但处理数据时需要很快。

问题基本上归结为比较比变量赋值更便宜的问题。对于整数,答案是否定的。我假设这将处于一个紧密循环中,其中变量已经在 CPU 级别 1 缓存中。比较将编译为操作代码,如:

1) Move "output" memory locations data into Register A
2) Put  1 into Register B
3) Jump <somewhere> if Register A == Register B.

如果与 0 进行比较,您可能会获得优化,其中 2) 未完成,因为在大多数 CPU 中有用于与 0 进行比较的特殊操作代码。

赋值将编译器编译为如下操作代码:

1) Put 1 into Register A
2) Push Register A to memory location of output

问题归结为每个操作码所花费的时钟周期。我认为它们很可能都是完全相同的时钟周期。