【发布时间】:2019-08-18 08:21:43
【问题描述】:
我有一个简单的问题,我只是不确定。
考虑下面的代码:
#include <stdio.h>
static void turnOn(int *power);
static void turnOff(int *power);
int main(void)
{
int powerIsOn = 0;
turnOn(&powerIsOn);
printf("Power Status: %d\n", powerIsOn);
turnOff(&powerIsOn);
printf("Power Status: %d\n", powerIsOn);
return 0;
}
static void turnOn(int *power)
{
if (!*power)
*power = 1;
// Or
//*power = 1;
return;
}
static void turnOff(int *power)
{
if (*power)
*power = 0;
// Or
// *power = 0;
return;
}
我知道这不会对这么小的东西造成明显的影响。但是在进行某种赋值的方法中,在重新赋值之前检查布尔值或其他值是否已经是真/假是否更有效?
例如,turnOn() 功能设置为仅在电源关闭时才打开电源。不管值如何,将其设置为 1 会更慢还是更快?
感谢您的宝贵时间。
【问题讨论】:
-
除非您在一个(外来)平台上,其中内存写入比内存读取成本很多,否则您很可能不会从这种“优化”中获得任何收益。它更有可能适得其反。
标签: c