什么是更快:检查空指针或调用空函数?

Nik*_*iou -1 c++

我正在建立一个系统,我必须多次调用一些命令,具体取决于用户输入,例如

void handle(int MouseInput)
{
    switch(MouseInput)
    {
    case Move:  
        ActionMove->execute(); 
        // ...
    case BtnUp: 
        ActionBtnUp->execute(); 
        // ...
    }
}
Run Code Online (Sandbox Code Playgroud)

然而,由于系统是可参数化的,我并不总是拥有例如actionMove命令对象(有时我在Move上什么都不做).

什么更快:

我要问的是什么是更大的开销,跳转到一个什么都不做的函数的成本(也许编译器很容易优化它)或者每次检查一个空指针?

注意我现在只能测试小规模,看不出任何差异.如果是这种情况,我想知道.

Sna*_*apa 5

在这种情况下,除非您注意到性能问题,或者您每隔几秒钟就会这样做几千次,否则它可能对性能没有太大影响.做对你最有意义的事情,以及最可实现和最清晰的事情.这样做在维护期间节省的时间可能大于程序花费额外比较的总时间.

  • s /几千次/一百万次/ (5认同)
  • @Snappawapa:我没有另外声明.并不意味着你可以忽略它.1 + 5仍然大于5. (2认同)