检查BOOL的值是否比仅更新它更有效?

时间:2015-07-03 07:03:11

标签: c++ objective-c c performance

我有一个快速的效率问题。

假设我有一个经常设置为YES的布尔值(当玩家在地面时)。

检查BOOL的值是否更有效,即

if (!character.isOnGround) character.isOnGround = YES;

或者将值设置为YES会更有效,即

character.isOnGround = YES

基本上,问题是这个。 if语句比赋值更快吗?

1 个答案:

答案 0 :(得分:5)

if (!character.isOnGround) character.isOnGround = YES;

需要:

  • 读取变量
  • 条件检查
  • 分支
  • 写变量

虽然优化编译器可能会崩溃到最后一个语句中。