C++ 正在检查BOOL';s值比只更新它更有效吗?

C++ 正在检查BOOL';s值比只更新它更有效吗?,c++,objective-c,c,performance,C++,Objective C,C,Performance,我有一个快速的效率问题 假设我有一个布尔值,经常设置为YES(当玩家在地面上时) 只检查布尔值是否更有效,即 如果(!character.isOnGround)character.isOnGround=YES 或者将值设置为YES(是)会更有效吗 character.isOnGround=YES 基本上,问题是这样的。if语句比赋值快吗 if (!character.isOnGround) character.isOnGround = YES; 将需要: 变量的读取 状况检查 分支 变量的写

我有一个快速的效率问题

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

只检查布尔值是否更有效,即

如果(!character.isOnGround)character.isOnGround=YES

或者将值设置为YES(是)会更有效吗

character.isOnGround=YES

基本上,问题是这样的。if语句比赋值快吗

if (!character.isOnGround) character.isOnGround = YES;
将需要:

  • 变量的读取
  • 状况检查
  • 分支
  • 变量的写入
尽管优化编译器可能会崩溃为最后一条语句

将需要:

  • 变量的读取
  • 状况检查
  • 分支
  • 变量的写入

尽管优化编译器可能只是折叠到最后一条语句。

No。只需设置值。No。只需设置值。