我一直在處理一個應用程序,並且由於圖像奇怪,我決定切換Wall標誌以查看是否有奇怪的事情發生。它揭示了一個新的警告:除以0警告
character.cpp(364): warning C4723: potential divide by 0
奇怪的是,有沒有部門打算在這點任何地方:
//Currently hp is always equal to 30
for (int i = 0; i < hp; i++) {
int startXPos = i*12 + 40;
if (i == hp-1) {
gfx.DrawLine(10+startXPos,15,10+startXPos,40,245,245,245); //This line
//This function expects: int, int, int, int, int, int, int
}
}
現在,當我與/Ox
編譯這個警告只發生 - 標誌(全面優化)。與/Od
(無優化)編譯時,我沒有收到警告。
我的問題是:我應該忽略這個警告(也許壓制它)?還是應該擔心?這是什麼原因造成的?
更新:在DrawLine的功能
部分:
int dx = x2 - x1;
int dy = y2 - y1;
if(dy == 0 && dx == 0) {
//1 pixel line
}
else if(std::abs(dy) > std::abs(dx)) {
if(dy < 0) {
std::swap(x1,x2);
std::swap(y1,y2);
}
float m = static_cast<float>(dx/dy);
//No different/more division past this point
什麼是'gfx.DrawLine'?這是你的職能之一嗎? –
@chuex是的,這將是調用DrawLine函數的圖形對象。 –
只是一個瘋狂的猜測,但也許有一些內聯正在進行? 'gfx.DrawLine'裏面有什麼區別嗎? –