我有這個代碼段:這是溢出嗎?
struct timeval start, end;
gettimeofday(&start, NULL);
//code I'm timing
gettimeofday(&end, NULL);
long elapsed = ((end.tv_sec-start.tv_sec)*1000000 + end.tv_usec-start.tv_usec);
ofstream timeFile;
timeFile.open ("timingSheet.txt");
timeFile << fixed << showpoint;
timeFile << setprecision(2);
timeFile << "Duration: " << elapsed << "\n";
timeFile.close();
將輸出已經經過的微秒數。但是,如果我改變這一行
long elapsed = ((end.tv_sec-start.tv_sec)*1000000 + end.tv_usec-start.tv_usec);
這樣:
long elapsed = ((end.tv_sec-start.tv_sec)*1000000 + end.tv_usec-start.tv_usec)/1000000.0;
我得到一個負值。爲什麼會發生?
能否請您與標籤所使用的語言這個問題? – bdukes
看起來像C++,但糾正我,如果我錯了。 – mc10
導致負值的'end'和'start'的值是多少? –