使用重复变量编写if-condition的更有效方法

eri*_*MTR 4 c variables performance conditional if-statement

我正在寻找一种更有效的方法来编写这些if-conditionals:

a = huge_term >= b ? huge_term : c
Run Code Online (Sandbox Code Playgroud)

要么

(a = huge_term) >= b ? a : a = c
Run Code Online (Sandbox Code Playgroud)

第二个很短,但变量a出现3次.我需要将结果存储在变量中.你会怎么写的?

Bil*_*ill 7

我建议使用中间变量并将逻辑分解为自己的函数.通常,每当我发现这样的条件逻辑时,它会在我的项目中一次又一次地出现,因此重构它可以节省时间.

Type processInput(const Type input)
{
  auto result = input;
  if ( input < b )
  {
    result = c;
  }
  return result;
}

int main()
{
  const auto input = huge_term;
  const auto result = processInput(input);
}
Run Code Online (Sandbox Code Playgroud)

  • +1 - 中间本地变量越多越好.在调试时,您可以进行"优化关闭"构建,而"额外"变量可以使调试更容易. (2认同)