Integer division by zero

来源:互联网 发布:表白app源码 编辑:程序博客网 时间:2024/05/16 10:39

我们对于除数操作,之前check其是否为零。

[cpp] view plain copy
  1. if (m_totalWriteCnt != 0)  
  2.     m_avgWriteSpan = (unsigned long)m_totalWriteTime/m_totalWriteCnt;  


但是上述code依然有错误。

原因在于他们的类型,

[cpp] view plain copy
  1. unsigned long   m_avgWriteSpan;  
  2. __uint64            m_totalWriteTime;  
  3. __uint64        m_totalWriteCnt;  


尽管之前判断m_totalWriteCnt不为零,但是当进行类型转换的时候可能为零。。。。